首页 > 技术文章 > 201871010130-周学铭 常用源代码管理工具与开发工具

z-thorn 2021-03-16 22:37 原文

项目 内容
课程班级博客链接 18卓越班
这个作业要求链接 常用源代码管理工具与开发工具
我的课程学习目标 了解软件项目源代码常用管理工具。
了解软件项目源代码常用集成开发软件工具。
这个作业在哪些方面帮助我实现学习目标 1.了解个各种代码管理软件的特点与区别。
2.了解了svn与git两种管理模式的却别。
3.熟悉了软件项目源代码常用集成开发软件工具。

1. 任务一:调研源代码版本管理软件
  • 使用过的源代码管理软件
    • github:

    GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。(摘自百度百科

    • svn:

    SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。(摘自百度百科

    • 码云(gitee):

    码云gitee是深圳市奥思网络科技有限公司推出的代码托管平台,支持Git和SVN,提供免费的私有仓库托管。

  • 了解的源代码管理软件
    • Gitlab:

    GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。(摘自百度百科

    • Bitbucket:

    BitBucket 是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户。(摘自百度百科


  • svn与git两种代码管理模式的区别
    • svn介绍:

    1.SVN的全称是Subversion,即版本控制系统。它是最流行的一个开放源代码的版本控制系统。
    2.SVN采用客户端/服务器体系,项目的各种版本都存储在服务器上,程序开发人员首先将从服务器上获得一份项目的最新版本,并将其复制到本机,然后在此基础上,每个开发人员可以在自己的客户端进行独立的开发工作,并且可以随时将新代码提交给服务器。当然也可以通过更新操作获取服务器上的最新代码,从而保持与其他开发者所使用版本的一致性。
    3.SVN的客户端有两类,一类是基于Web的WebSVN等,另一类是以Tortoise SVN为代表的客户端软件。(摘自百度百科

    • git介绍:

    Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持(wingeddevil注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样。并且在push和pull的时候和服务器端还是有交互的。),使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。(摘自百度百科

    • svn与git的比较

      1.Subversion属于集中式的版本控制系统。集中式的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
      2.Git属于分布式的版本控制系统。Git记录版本历史只关心文件数据的整体是否发生变化。Git 不保存文件内容前后变化的差异数据。
      (摘自博客

      • svn的优点:
        • 管理方便,逻辑明确,符合一般人思维习惯。
        • 易于管理,集中式服务器更能保证安全性。
        • 代码一致性非常高。
        • 适合开发人数不多的项目开发。
      • svn的缺点:
        • 服务器压力太大,数据库容量暴增。
        • 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。
        • 不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。
      • git的优点:
        • 适合分布式开发,强调个体。
        • 公共服务器压力和数据量都不会太大。
        • 速度快、灵活。
        • 任意两个开发者之间可以很容易的解决冲突。
        • 离线工作。
      • git的缺点:
        • 学习周期相对而言比较长。
        • 不符合常规思维。
        • 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
    • svn与git在团队协作流程和项目管理方面的区别:
      • 团队协作流程:
        • git:创建开发分支→Fork项目到个人的仓库→Clone项目到本地→和团队项目保持同步→push修改到自己的项目上→请求合并到团队项目上→团队项目负责人审核及同意合并请求。
        • svn:创建新项目→创建分支→切换分支→合并代码→正式版本发布→bug修复。
      • 项目管理:
        • git:安装并配置Git,建立与GitHub的连接→Git上传本地工程到GitHub或其他代码托管平台。
        • svn:集中式开发和分散式开发。

  • 以码云(gitee)与github两种代码托管工具为例进行比较:
    gitee github
    代码托管模式 支持git与svn 支持git
    开发商 国内 国外
    开源项目 优秀的库少 优秀的库多
    网络质量 网络稳定 网络不稳定
    功能 提供免费的 Git 仓库,还集成了代码质量检测、项目演示等功能 除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能

2. 任务二:调研并试用广泛使用的源代码集成开发工具软件(Integrated Development Environment,IDE)
  • MyEclipse:
    • 优点:基本可以实现java方面的所有开发功能;集成了很多常用的框架。
    • 缺点:myeclipse版本是收费的,在图形化插件集成方面还是不够成熟;内存占用严重。
  • IntelliJ IDEA
    • 优缺点与MyEclipse类似。
  • Android studio
    • 稳定速度快:使用Eclipse的开发人员都会碰到突然假死、卡顿、内存占用高等一系列影响开发效率的老问题,Android Studio在这块性能上得到了明显的提升,并且Android Studio使用了单项目管理模式,在启动速度上比 Eclipse快。
    • 功能强大的UI编辑器:集合了Eclipse+ADT的优点,并且能更实时的展示界面布局效果。
    • 完善的插件管理:Android Studio支持了多种插件,可直接在插件管理中下载所需的插件,。
    • 完善的支持多种代码管理工具:不需要任何操作,直接支持SVN、GITHUB等主流的代码管理工具。
    • 整合了Gradle构建工具:Gradle继承了Ant的灵活性和Maven的生命周期管理,不适用XML作为配置文件格式,采用了DSL格式,使得脚本更加灵活简洁。
    • 智能:智能保存,智能补齐,在实际的编辑代码中熟练使用后,可极大提高代码编写效率。
    • 内置终端:不需要自己打开一个终端来使用ADB等工具。
    • 谷歌官方支持:是Google官方专门为Android应用开发打造的利器,也是目前Google官方唯一推荐,并且不再支持其他IDE。
    • 基于IntelliJ IDEA开发,相比于Eclipse更适合于开发安卓app。
  • Code:: Blocks
    • 优点:跨平台;开源;空间占用较少,轻量级;
    • 缺点:在开发工程方面,相比于其他IDE不占优势;仅支持C/C++开发。
  • Visual Studio
    • 优点:基本包含了其他IDE的绝大部分功能,适合用于开发。
    • 缺点:空间占用大;仅支持C/C++,C#语言的开发。
  • VScode
    • 优点:免费;插件多;占用内存低,启动速度;全平台,支持多种语言。
    • 缺点:不够稳定。
  • Subline
    • 优点:主流前端开发编辑器;体积小,运行快,启动快;文本功能强大;支持编译,且可以在控制台看到输出;可安装大量插件,来满足定制化需求;轻量级,适用小项目。
    • 缺点:收费闭源。
  • HBuilderX
    • 优点:一套代码,多端运行;代码实现简单,开发快速,官网提供很多组件;uniapp开发体验对前端人员十分友好;突破了系统对H5调用原生功能的限制。
    • 缺点:问世的时间还比较短,有很多地方还不是完善。
  • PyCharm
    • 优点:方便的环境管理;自动导入包;方便的代码调试;Git管理;远程管理开发。
    • 缺点:内存占用高。
3. 任务三:练习使用typora进行MarkDown格式博客的本地编辑和实时预览


总结:通过本次实验,我们了解了好多目前常用的软件项目源代码管理工具,例如:GitHub,Gitee等,了解了其功能与背景,比较了它们之间的优缺点;同时还了解了svn与git两种源代码管理模式的区别;除此之外我们还了解了好多项目软件常用的IDE,例如:Visual Studio,Eclipse等,比较了它们之间的优缺点。

推荐阅读