项目 内容
课程班级博客链接 课程班级博客链接
这个作业要求链接 作业要求链接
我的课程学习目标 通过本课程学习软件工程科目来学习计算机软件开发和维护
这个作业在哪些方面帮助我实现学习目标 帮助我了解版本控制管理软件和常用的开发集成环境

任务1

调研源代码版本管理软件

上网调研目前被广泛使用的基于源代码版本管理软件Git的项目管理工具,如GitHubGitlabBitbucket 等,比较它们之间的异同(包括但不限于团队协作流程,项目管理等)。

GitHub 是第一个供“用 Git 进行版本控制系统的软件开发项目”使用的基于 Web 的代码托管服务,是目前全球最大的开源社交编程及代码托管网站。 GitHub 于 2008 年 4 月 10 日正式上线,除了基本的服务以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享( Gist )等功能。

img

BitBucket 是 2008 年创建的源代码托管网站,采用 Mercurial 和 Git 作为分布式版本控制系统,同时提供免费账户和商业计划。 2010 年被 Atlassian 收购,与 Atlassian 的其他服务(Git GUI SourceTree 、 HipChat 、 Cloud9)顺利集成,主要面向慈善企业和企业用户 /其主要市场是大型企业。

img

GitLab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。

img

  • Coding Coding 是一个面向开发者的云端开发平台,目前提供代码托管,运行空间,质量控制,项目管理等功能。此外,还提供社会化协作功能,包含了社交元素,方便开发者进行技术讨论和协作。 2016 年 3 月 CODING 宣布收购代码托管平台 GitCafe 。也许是目前国内体验最接近 github 的产品。

img

基本特征

关于这 4 大代码托管服务平台有着各自不同的功能,但也是有一些基础特点,比如:

  • 拉取请求
  • 代码审查
  • 内联编辑
  • 问题跟踪
  • Markdown支持
  • 双向认证
  • 高级权限管理
  • 托管的静态网页
  • 功能丰富的API
  • Fork / Clone Repositories
  • 代码段
  • 第三方集成

在这四家代码托管服务,只有 GitLab 有一个开源代码版本。 GitLab 社区版的源代码也开放在他们的网站上。

GitHub 以开源友好而闻名,并且拥有最大数量( 19.4M +)的开源项目但其本身不是开源的。

Bitbucket 也不是开源的,但在购买托管服务的服务中提供了「产品定制」的功能。

Coding 同样也不是开源的,不过 , 9 月中旬 Coding 宣布开放 WebIDE 的源代码

GitHub , GitLab , Bitbucket 和 Coding 都具有「发现」功能。除了 GitLab ,每个都提供了「 follow 」功能。 Coding 允许开发者在个人配置文件中添加自定义标签,方便找到其他相同兴趣的开发者。在协作上, GitHub 是开源协作方面的首当其冲的选择。目前 GitHub 拥有全世界最大数量的公共开源项目,全球顶级科技公司( Google / Apple/ Facebook/ Twitter/ Microsoft/Alibaba/ Tencent)纷纷加入 GitHub ,全球顶级开源项目(Linux/ Nodejs/ Swift/ Ruby / Docker)都优先选择在 GitHub 上开源,这里还有全球顶级编程大牛贡献代码。这里不仅仅是专业开发人员的交友乐园,也聚集了很多对软件开发感兴趣的人学习。甚至,一个活跃的 GitHub 账号也能成为理想工作的敲门砖。GitHub 和 GitLab 都是基于 web 的 Git 仓库,使用起来二者差不多,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。GitHub 作为开源代码库,拥有超过 900 万的开发者用户,目前仍然是最火的开源项目托管平台,

GitLab 解决了这个问题,你可以在上面创建私人的免费仓库。

GitLab 让开发团队对他们的代码仓库拥有更多的控制,相比较 GitHub , 它有不少特色:

(1) 允许免费设置仓库权限;

(2) 允许用户选择分享一个 project 的部分代码;

(3) 允许用户设置 project 的获取权限,进一步提升安全性;

(4) 可以设置获取到团队整体的改进进度;

(5) 通过 innersourcing 让不在权限范围内的人访问不到该资源;

导入的代码仓库类型的区别:

img

某种意义上,分布式版本控制系统决定了选择哪个代码存储服务, Bitbucket 在这方面脱颖而出,因为这是唯一同时支持 Mercurial.

Coding , GitHub 和 Bitbucket 支持导入基于多个不同 VCS 的 repos ,而 GitLab 只支持 Git 。

毫无疑问, Git 是目前最受欢迎的 VCS ,但如果你正在使用 Mercurial 或 SVN 存储库,那么迁移至 GitLab 可能会很复杂。 GitLab 提供了简单方便的方式,用于从 GitHub 或其他平台上导入代码仓。

GitHub 支持:

  • 导入 Git , SVN , HG , TFS.

GitLab 支持:

  • 导入 Git.
  • 更容易从其他服务导入 GitHub , Bitbucket , Google code , Fogbugz 。

Coding 支持:

  • 导入 Git , SVN , HG.

Bitbucket 支持:

  • 导入 Git , CodePlex , Google Code , HG , SourceForge , SVN 。

任务2:

调研并试用广泛使用的源代码集成开发工具软件(Integrated Development Environment,IDE)

作为一名软件/程序开发人员,不管你使用哪门语言进行源代码开发都有很多可供选择的IDE,IDE是提供软件/程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具,集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套件,开发者可以通过IDE提供的代码高亮,代码补全和提示,语法错误提示,函数追踪,断点调试等功能提高开发效率。上网调研并试用包括MyElipse、Visual Studio 、HBuilderX、Microsoft Visual Studio(简称VS)、PyCharm、Android studio、NetBeans、IntelliJ IDEA、Code:: Blocks等IDE,结合调研资料和使用体验概括总结以上IDE的功能特色。

image

1.Visual Studio

Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight及Windows Phone。Visual Studio是最流行的Windows平台应用程序的集成开发环境。最新版本为 Visual Studio 2019 版本,基于.NET Framework 4.8 。

因为一直用的社区版的vs写c++和c#, 无法体会到vs的高级功能,所以不能在很多功能上和JB家的无县限制版做横向对比,但是能明显感知的是并不会卡死,确实比JB全家桶要流畅一些,如果电脑4g内存就用的vs写,相比同配置下的JB全家桶,卡的已经要命了。但是目前主力还是cion,也可以感觉出来vs的智能提示并不如clion,Visual Studio的只能机械的显示一些错误信息,虽然有时候错误提示也会附带一些关于如何修正错误的提示,但大多比较死板,需要程序员靠自己的经验来修复错误。clion优点是跨平台,对于我这种需要经常使用Linux的人有着很大的方便,而vs的优点是它支持很多类型的项目,JB全家桶需要分别下载,比较麻烦等等。

image

2.IntelliJ IDEA

IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(gitsvn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。

IntelliJ IDEA的优点:

最突出的功能自然是调试(Debug),可以对Java代码,JavaScript,JQuery,Ajax等技术进行调试。比如查看Map类型的对象,如果实现类采用的是哈希映射,则会自动过滤空的Entry实例。其次,需要动态Evaluate一个表达式的值,比如我得到了一个类的实例,但是并不知晓它的API,可以通过Code Completion点出它所支持的方法。最后,在多线程调试的情况下,Log on console的功能可以帮你检查多线程执行的情况,同时支持全平台使用。

IntelliJ IDEA的缺点:
  1. 插件开发匮乏,比起Eclipse,IDEA只能算是个插件的矮子,目前官方公布的插件不足400个,并且许多插件实质性的东西并没有,可能是IDEA本身就太强大了。

  2. 在同一页面中只支持单工程,这为开发带来一定的不便,特别是喜欢开发时建一个测试过程来测试部分方法的程序员带来心理上的不认同。

  3. 匮乏的技术文章,目前网络中能找到的技术支持基本没有,技术文章也少之又少。

  4. 资源消耗比较大,建个大中型的J2EE项目,启动后基本要200M以上的内存支持,包括安装软件在内,差不多要500M的硬盘空间支持。(由于很多智能功能是时时的,因此包括系统类在内的所有类都被IDEA存放到IDEA的工作路径中)。

image
image

3.PyCharm

PyCharm 由著名软件开发公司 JetBrains 开发。在涉及人工智能和机器学习时,它被认为是最好的 Python IDE。最重要的是,Pycharm 合并了多个库(如 Matplotlib 和 NumPy),帮助开发者探索更多可用选项。

PyCharm的优点:
  • PyCharm 支持 web 开发框架,如 Pyramid、Flask 和 Django。
  • 提供智能代码功能,可以执行更精确、快速的 bug 修复。
  • 在 Docker 和 Vagrant 连接和 ssh 终端的帮助下,允许在远程主机上进行程序开发。
PyCharm的缺点:
  • 界面庞杂
  • 其优点的成本高昂

image

image

4.Android Studio

Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。

Android Studio的优点:

  • 1、Google推出的

    ​ 毫无疑问,这个是它的最大优势,Android Stuido是Google推出,专门为Android“量身订做”的,是Google大力支持的一款基于IntelliJ idea改造的IDE,google的工程师团队肯定会不断完善,上升空间非常大,这个应该能说明为什么它是Android的未来

  • 2、速度更快

    ​ Eclipse的启动速度、响应速度、内存占用一直被诟病,相信大家这点应该深有体会,而且经常遇到卡死状态。Studio不管哪一个方面都全面领先Eclipse。这点可能在windows上没有表现出来,win上运行studio同样会出现卡顿现象,但这只能说win平台还没优化好,毕竟还没有发布正式版,或者说windows系统本身就很卡顿,你还能指望它做什么呢。

  • 3、UI更漂亮

    ​ I/O上演示的那款黑色主题真是太棒了,极客范,Stuido自带的Darcula主题的炫酷黑界面实在是高大上,相比而言Eclipse下的黑色主题太low了

  • 4、更加智能

    ​ 提示补全对于开发来说意义重大, Studio则更加智能,智能保存,从此再也不用每次都 Ctrl + S了。熟悉Studio以后效率会大大提升。

  • 5、整合了Gradle构建工具

    ​ Gradle是一个新的构建工具,自Studio亮相之处就支持Gradle,可以说Gradle集合了Ant和Maven的优点,不管是配置、编译、打包都非常棒。

  • 6、强大的UI编辑器

    ​ Android Studio的编辑器非常的智能,除了吸收Eclipse+ADT的优点之外,还自带了多设备的实时预览,相对这对Android开发者来说简直是神器啊。

  • 7、内置终端

    ​ Studio内置终端,这对于习惯命令行操作的人来说简直是福音啊,再也不用来回切换了,一个Studio全部搞定。

  • 8、更完善的插件系统

    ​ Studio下支持各种插件,如Git、Markdown、Gradle等等,你想要什么插件,直接搜索下载。

  • 9、完美整合版本控制系统

    ​ 安装的时候就自带了如GitHub, Git, SVN等流行的版本控制系统,可以直接check out你的项目。

Android Studio的缺点:

首先Studio目前仍未发布正式版,可能有些不稳定,但是用了这么久,发现的bug很少;其次从Eclipse迁移到Studio有学习成本,不过这对于一名开发者来说学无止境,而且不想学习的话可直接设置eclipse风格的快捷键;最后Studio官方解释暂不支持NDK,所以如果你的项目有使用NDK不建议使用。
image

5.CodeBlocks

CodeBlock的优点:

CodeBlock 内建了多种语言编译器的接口,理论上可以支持任何编程语言。

CodeBlock的缺点:

没有函数自动补全和调试

image

6.HbuilderX

HbuilderX的优点:

1,一套代码,多端运行,可以同时生成ios,Android,H5,微信小程序,支付宝小程序,百度小程序。

2,代码实现简单,开发快速,官网提供很多组件,可以直接拿来用。

3,uniapp开发体验对前端人员十分友好,首先uni-app是基于vue.js的,其次和微信小程序的开发方式类似。

4,突破了系统对H5调用原生功能的限制,比如使用uniapp结合HTML5plus能调用系统相册图片选择和拍照等。

HbuilderX的缺点:

1.uni-app问世的时间还比较短,有很多地方还不是完善,坑很多

2.对于使用中的一些bug及问题,官方回应的不是很及时

image

任务3:

撰写任务1、任务2相关内容博客

  • 练习使用typora进行MarkDown格式博客的本地编辑和实时预览,编辑完成后复制到博客园中。(博客排版美观5分)
  • 博客名称:学号-姓名 常用源代码管理工具与开发工具(2分)
  • 博文开头格式:(3分)
项目 内容
课程班级博客链接 <填写课程班级博客链接>
这个作业要求链接 <填写作业要求链接>
我的课程学习目标 <填写目标>
这个作业在哪些方面帮助我实现学习目标 <填写相关内容>

image

posted on 2021-03-16 21:37  大王,三星工厂又炸了  阅读(164)  评论(2编辑  收藏  举报