201871030117-李亚楠-常用源代码管理工具和开发工具
项目 | 内容 |
---|---|
课程班级博客连接 | 2018卓越班 |
这个作业要求链接 | 常用源代码管理工具和开发工具 |
我的课程学习目标 | 1.认识一些源代码版本管理软件,比较异同,为以后更好的使用做理论铺垫; 2.了解了一些广泛使用的源代码集成开发工具软件,体会各种IDE的特点,学会这些集成开发工具正确、高效地使用; 3.练习使用typora进行本地编辑和预览,使博客书写更加便捷; |
这个作业在哪方面帮助我实现这个目标 | 1.阅读相关博客,以及网上的各种资料,了解各种源代码版本管理软件的异同和各自的优势,能对源代码进行合理的管理; 2.下载各种常用的IDE,简单使用,体会其特色及存在的问题; 3.下载typora进行博客书写练习,熟悉此软件的应用,高效书写博客; |
任务1:调研源代码版本管理软件
-
版本控制系统的类型
- 本地:所有开发人员都在同一个文件系统中
- 集中式:项目团队在中央服务器上具有单个项目副本,团队成员将更改提交给一个副本
- 分布式:开发人员在本地存储库中工作,更改在存储库之间共享
-
git
- git是用于Linux内核开发的版本控制工具,是一个开源的分布式版本控制系统
- 优点:
- 适合分布式开发,强调个体,公共服务器压力和数据量都不会太大
- 速度快,灵活。git分支的本质是一个指向提交快照的指针,速度快、灵活,分支之间可以任意切换,可以在本地进行操作可以不同步到远程
- 任意两个开发者之间可以很容易解决冲突。多人开发很容易出现冲突,可以先pull远程到本地,然后本地合并一下分支,解决好冲突,再push到远程即可
- 离线工作。如果git服务器出现问题,也可以在本地进行切换分支操作,等有网络之后再提交、合并等操作
- 缺点:
- 学习周期相对较长
- 代码保密性差,一单开发者把整个库克隆下来就可以完全公开所有代码和版本信息
- git没有严格的权限控制,一般是通过系统设置文件的读写权限来做权限控制的
1.GitHub
-
GitHub是git存储库和协作项目开发的首选网站。该系统允许用户轻松创建基于Git的特殊版本控制系统。
-
GitHub有以下几个优点:
- pull request,issue等特点对开发人员友好
- 功能设计简洁实用上手很快,可用性好
- 错误跟踪:这项功能属于协作功能,可以通过项目检测到的软件错误记录来提高代码质量
- 快速搜索:存储库提供了方便的项目结构,允许有效的搜索和排序
- 社区:GitHub的用户数量已经有很大规模。这个世界范围内极大的开发团队是共享技能和经验的重要来源。用户可以沟通,评论,编辑和跟踪新闻
- 共享:项目源代码不仅可以使用Git进行复制,还可以作为归档下载
- 协作开发:GitHub为团队提供了高效的功能
- 兼容性:源代码位于GitHub的项目可以轻松地定制到任何云主机服务
- 支持Git、SVN、HG、TFS导入
-
GitHub缺点:
- 非免费,而且限制文件大小不能超过100Mb,存储库可以托管信息1Gb
- wiki功能太弱,导致文档经常被分离到一个独立站点
- 基于Git,学习周期较长
2.GitLab
-
GitLab也是基于Git版本控制开发的,主要有几种形式:适用于企业的GitLab SAAS,以及用户的个性化解决方案GitLab Community Edition
-
GitLab优点:
-
免费,不限私有存储库的数量
-
在开源许可证下允许
-
错误跟踪和基于Web的代码编辑
-
与LDAP(轻量级目录访问协议)集成,允许在Internet上定位和访问各种资源。GitLab EE支持多种LDAP服务和组同步
-
支持Git导入
-
GitLab 缺点:
- 界面相对较慢
- 存储库常见的技术问题
-
BitBucket是Altassian公司提供的一个基于web的版本库托管服务,支持Mercurial和Git版本控制系统
-
BitBucket优点:
- 支持Hg,也支持git
- 小团队免费,支持5个人以内的合作开发
- 一个集成的查询管理系统
- 通过社交媒体和GitHub认证
- 集成Jira工具。BitBucket和Jira在整个开发阶段都做了整合,通过集成的错误跟踪组件,JIRA自动更新有关检测到的问题信息
- 导入现有Git项目
- 支持Git,CodePlex,Google Code,HG,SourceForge,SVN导入
-
BitBucket缺点:
- 不开源
- 系统不稳定
4.GitHub、GitLab、BitBucket的异同:
-
相同点:
-
都是基于Web的版本库托管服务,支持Git版本控制系统
-
具有一些相同的特点,如markdown支持、第三方集成等
-
为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所
-
-
不同点:
- 只有GitLab是开源代码版本;GitHub以开源友好而闻名,并且拥有最大数量的开源项目但其实并不是开源的;BitBucket也不是开源的,但是再购买托管服务的方案中提供了产品定制功能
- GitHub、GitLab、BitBucket都具有“发现”功能,除了GitLab,每个都提供了“follow”功能
- GitHub、BitBucket支持导入基于多个不同VCS的repos,而GitLab只支持Git
- GitHub允许托管无限的共有代码仓库,但是项目不超过1GB和每个单个文件不能超过100MB;BitBucket允许5个成员加入,公有、私有仓库都免费;GitLab允许无限数量的用户再无限数量的公有和私有项目上进行协作,并且每个存储库由10GB的空间限制
- GitHub支持搭建本地服务器的个人GitHub,只能供个人使用;GitLab提供开源代码,支持企业自己用企业买的服务器搭建企业GitLab,供公司所有人使用
- GitHub支持导入Git、SVN、HG、TFS;GitLab支持导入Git;BitBucket支持导入Git、HG、SVN、Google code
- BitBucket服务类似于GitHub,但功能不大相同。BitBucket最适合小型开发团队,提供了与GitHub和GitLab相对更温和的价格,并且为团队提供了灵活的部署模式
任务2:调研并使用广泛使用的集成开发软件
1.NetBeans
-
NetBeans不仅仅支持Windows平台,而且还支持Mac,Linux和Solaris等平台,你可以根据自己的平台选择合适的版本,NetBeans也不仅仅只是Java开发平台,目前还支持Java Fx、Groovy、PHP、HTML5,Grails和C/C++等开发语言。NetBeans对国际化支持也非常好,所以可以直接使用中文版
-
NetBeans IDE包括开源的开发环境和应用平台,还可以下载绑定服务器,这样NetBeans IDE就可以方便的让开发人员利用java平台能够快速进行Web应用、桌面应用以及移动的应用程序的开发工作
-
NetBeans项目还有一个活跃的开发社区提供支持,为NetBeans开发环境提供了丰富的产品文档和培训资源以及大量的第三方插件
-
NetBeans功能强大,安装简单
2.Eclipse
-
Eclipse原来是IBM公司开发专门用于java的IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会管理,Eclipse是一个开放源码的、基于Java的可扩展开发平台。
-
Eclipse设计非常优良,它本身只是一个框架和一组服务,可以通过插件的方式构建开发环境,并扩展某功能。而且,Eclipse附带了一个标准的插件集,其中就包括Java开发工具(JDK)
-
虽然大多数用户都将Eclipse当作Java集成开发环境(IDE)来使用,Eclipse包括插件开发环境(PDE),这个组件主要是针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。目前Eclipse也可以通过插件的方式扩展,使其作为C++、python、PHP等其它语言的开发工具
3.IntelliJ IDEA
- IDEA是java语言开发的集成环境,IntelliJ再业界被公认为是最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、创新的GUI设计等方面的功能可以说是超常的,IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国首都布拉格,开发人员以严谨著称的东欧程序员为主
4.Visual Studio
- Visual Studio是微软公司推出来的开发环境。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、软件管控工具、集成开发环境等等
- Visual Studio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件
- 在VS集成环境下可以进行C/C++/C#/VB/F#语言和一些网络语言编译,所编写的程序代码适用于微软支持的所有平台。
- Visual studio是一个可视化的工具集合。它将代码编译、编译器、连接器、资源编辑器都整合在同一个开发环境中。它通过项目、项目集等组织概念使开发直到发布,能够称为流程化,减少手工劳动。VS在编辑代码时,UI会有各种直观的提示和辅助功能
5.Hbuilder
- HBuilder,H是HTML,Builder是构造者,X是HBuilder的下一代版本,简称HX。HX是轻如编辑器、强加IDE的合体版本。
- HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE。HBuilder的编写用到了Java、C、web和Ruby。自身是用Java编写的,特点有轻巧、急速、vue开发强化、小程序支持、markdown利器、强大的语法提示、高效极客工具、更强的json支持
- HX支持java插件、nodejs插件,并兼容了很多vscode的插件及代码块,还可以通过外部命令,方便的调用各种命令行功能,并设置快捷键。
- 在一个团队内部,HX不止代替了其它开发工具,还代替了记事本、word、evernote等
6.PyCharm
-
Pycharm是JetBrains公司可开发的Python集成开发环境,PyCharm分为两个版本,专业版和社区版
-
PyCharm提供智能代码补全、代码检查、实时错误高亮和快速修复,以及自动化代码重构和丰富的导航功能。PyCharm为现代Web开发框架提供丰富的框架针对性支持
-
PyCharm与IPython Notebook集成,提供交互式Python控制台,并且支持Anaconda和多种科学化的包(如NumPy)
7.Android studio
-
Android Studio是Google推出基于IntelliJ IDEA的Android应用集成开发环境,而且提供了更多提高Android应用的构建效率功能
-
基于Gradle的灵活构建系统;Instant Run可以将变更推送到正在运行的应用中,无须重新构建Apk;快速和丰富的模拟器;丰富的测试工具、性能工具和网络监控工具;C++和NDK支持,以及LLDB可以调试原生代码;使用Room将数据持久化数据库;使用apkanalyzer对预构建APK进行分析和调试、强大的布局编辑器、支持Koltin编码和Lua编码
8.Code Blocks
- Code Blocks是一个开放源码的全功能的跨平台C/C++集成开发环境,纯粹由C语言完成,使用了著名的图形界面库wxWidgets版,选择UNICODE支持中文。
- Code Blocks提供了许多工程模板,包括控制台应用、动态连接库、静态库、FLTK应用等等,另外它还支持用户自定义工程模板。
- Code Blocks支持语法色彩醒目提醒,支持代码完成,支持工程管理、项目构建、调试。Code Blocks支持插件,主要包括代码格式工具AStyle、代码分析器、代码统计等等。
- Code Blocks具有灵活而强大的配置功能,除了支持自身的工程文件、C/C++外,还支持批处理、CSS文件、MASM汇编文件、XBase文件等等。
任务3:使用typora编写博客