201871030103-陈荟茹 常用源代码管理工具与开发工具
项目 | 内容 |
---|---|
课程班级博客链接 | 班级博客链接 |
这个作业要求链接 | 作业要求链接 |
我的课程学习目标 | 1.了解目前被广泛使用的基于源代码版本管理软件Git的项目管理工具,明白他们之间的区别和联系 2.了解调研并试用广泛使用的源代码集成开发工具软件 3.使用typora进行MarkDown格式博客的本地编辑和实时预览 |
这个作业在哪些方面帮助我实现学习目标 | 1.结果上网查阅资料和调研,明白了各种项目管理工具,并掌握了他们之间的联系 2.使用了下载的源代码集成开发工具软件 3.了解并使用了typora工具 |
任务1:调研源代码版本管理软件
GitHub
简介
- GitHub 是第一个供“用Git进行版本控制系统的软件开发项目”使用的基于Web的代码托管服务,是目前全球最大的开源社交编程及代码托管网站。
- GitHub除了基本的服务以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。
基本功能
- 作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
- GitHub可以托管各种git库,并提供一个web界面,但它与外国的SourceForge、Google Code或中国的coding的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
- 在GitHub进行分支就像在Myspace(或Facebook)进行交友一样,在社会关系图的节点中不断的连线。
- GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并不如此。Chris Wanstrath,GitHub的开发者之一,肯定了通过付费的私有库来在财务上支持免费库的托管这一计划。
- 通过与客户的接洽,开发FamSpam,甚至是开发GitHub本身,GitHub的私有库已经被证明了物有所值。任何希望节省时间并希望和团队其它成员一样远离页面频繁转换之苦的人士都会从GitHub中获得他们真正想要的价值。
- 在GitHub,用户可以十分轻易地找到海量的开源代码。
团队协作流程
前期工作
- 在 Github 上创建 organization
- 邀请队友加入 organization 并创建 team
- 建立团队项目仓库,在设置中将 team 的权限设置为 read
- 创建开发分支,让队友 fork 到个人仓库
正式使用流程
- clone 项目到本地
- 添加 REMOTE 关联到团队远程仓库
- 切换到 dev 分支
- 提交commit到自己的远程仓库
- 和团队远程保存同步
- push 到自己的远程仓库 & 请求 pull request 到团队远程
GitLab
简介
GitLab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。
应用特点
1.Web框架使用RubyonRails。
2.基于MIT代码发布协议。
3.需要gitolite协同工作。
团队协作流程
- 加入群组
- 拉取项目,建立分支
- 开发:发布任务、编写代码、提交代码并备注、回复任务、结束任务
- wiki
- 代码重用
BitBucket
简介
BitBucket 是 2008 年创建的源代码托管网站,采用 Mercurial 和 Git 作为分布式版本控制系统,同时提供免费账户和商业计划。2010 年被 Atlassian 收购,与 Atlassian 的其他服务(Git GUI SourceTree、HipChat、Cloud9)顺利集成,主要面向慈善企业和企业用户/其主要市场是大型企业。
特点
- 无限制的私有仓库个数
- 无限制的磁盘空间
- 同时支持https/ssh
- Bug 跟踪
- 项目Wiki
- API 支持
- 灵活的权限控制
- 可自定义域名
- RSS 修改记录输出
- 自定义下载
GitHub、Gitlab、Bitbucket之间的异同
不同点:
哪个是开源的服务或产品
在这四家代码托管服务,只有 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 账号也能成为理想工作的敲门砖。
导入的代码仓库类型
某种意义上,分布式版本控制系统决定了选择哪个代码存储服务,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。
小结论
- 如果你想要一个免费开源的解决方案,GitLab 也许比较吸引人;
- 如果你正在开发一个开源项目想取得更多的关注,那 GitHub 毫无疑问是第一选择;
- 如果你想要免费的私有库,并在使用 Atlassian 的其他产品(例如:Confluence,Jira, SourceTree…),代码托管在 Bitbucket 绝对用起来会很爽;
- 如果你想要免费私有代码仓库,想获得更多的中文支持或正在使用 Coding WebIDE,Coding 明显更适合。
相同点:
- 拉取请求
- 代码审查
- 内联编辑
- 问题跟踪
- Markdown支持
- 双向认证
- 高级权限管理
- 托管的静态网页
- 功能丰富的API
- Fork / Clone Repositories
- 代码段
- 第三方集成
任务2:调研并试用广泛使用的源代码集成开发工具软件(Integrated Development Environment,IDE)
MyElipse
简介
MyEclipse,是在Eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。在最新版本的MyEclipse中,配合CodeMix使用支持也十分广泛,尤其是对各种开源产品和主流开发框架的支持相当不错。目前已支持PHP、Python、Vue、Angular、React、Java、Java EE等语言和框架开发。
功能特色
MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse可以支持Java Servlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了所有主流开源产品的专属eclipse开发工具。
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 2008为例)
Visual Studio 2008 在三个方面为开发人员提供了关键改进:
- 快速的应用程序开发
- 高效的团队协作
- 突破性的用户体验
- Visual Studio 2008 提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序。
- Visual Studio 2008 包括各种增强功能,例如可视化设计器(使用 .NET Framework 3.5 加速开发)、对 Web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。Visual Studio 2008 为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 AJAX 的 Web 应用程序。
- 开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web 应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 ASP NET应用程序服务和 Microsoft 平台。
程序开发
为了帮助开发人员迅速创建先进的软件,Visual Studio 2008 提供了改进的语言和数据功能,例如语言集成的查询 (LINQ),各个编程人员可以利用这些功能更轻松地构建解决方案以分析和处理信息。
Visual Studio 2008 还使开发人员能够从同一开发环境内创建面向多个 .NET Framework 版本的应用程序。开发人员能够构建面向 .NET Framework 2.0、3.0 或 3.5 的应用程序,意味他们可以在同一环境中支持各种各样的项目。
用户体验
Visual Studio 2008为开发人员提供了在最新平台上加速创建紧密联系的应用程序的新工具,这些平台包括 Web、Windows Vista、Office 2007、SQL Server 2008 和Windows Server 2008。对于 Web,ASP NET AJAX 及其他新技术使开发人员能够迅速创建更高效、交互式更强和更个性化的新一代 Web 体验。
高效的团队协作
Visual Studio 2008 提供了帮助开发团队改进协作的扩展的和改进的服务项目,包括帮助将数据库专业人员和图形设计人员加入到开发流程的工具。
HBuilderX
功能特色
轻巧、极速
- 10M的绿色发行包。
- C++架构,启动速度、大文档打开速度、编码提示,都极速响应。
强大的语法提示
- 一流的ast语法分析能力,语法提示精准、全面、细致,转到定义、重构完善。
专为vue打造
- 提供比其他工具更优秀的vue支持。
- 大幅提升你的vue开发效率。
markdown优先
- HX是唯一一个新建文件默认类型是markdown的编辑器,也是对md支持最强的编辑器,你甚至可以直接粘贴表格、图片进来。
- 对于技术人员,我们强烈建议你以后不要使用记事本了,用markdown来替代txt。
高效极客操作
- HBuilderX对字处理提供了更崇高的支持。
- 更强大的多光标、智能双击、选区管理...让文字处理的效率大幅提升。比如你可以简单的选中想要处理的多端文字区块,方便的同时注释掉不同行的一对tag或if块首尾行。
PyCharm
简介
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。
功能特色
编码协助
- 其提供了一个带编码补全,代码片段,支持代码折叠和分割窗口的智能、可配置的编辑器,可帮助用户更快更轻松的完成编码工作。
项目代码导航
- 该IDE可帮助用户即时从一个文件导航至另一个,从一个方法至其申明或者用法甚至可以穿过类的层次。若用户学会使用其提供的快捷键的话甚至能更快。
代码分析
- 用户可使用其编码语法,错误高亮,智能检测以及一键式代码快速补全建议,使得编码更优化。
Python重构
- 有了该功能,用户便能在项目范围内轻松进行重命名,提取方法/超类,导入域/变量/常量,移动和前推/后退重构。
支持Django
- 有了它自带的HTML,CSS和 JavaScript编辑器 ,用户可以更快速的通过Django框架进行Web开发。此外,其还能支持CoffeeScript, Mako 和 Jinja2。
支持Google App引擎
- 用户可选择使用Python 2.5或者2.7运行环境,为Google App引擎进行应用程序的开发,并执行例行程序部署工作。
集成版本控制
- 登入,录出,视图拆分与合并--所有这些功能都能在其统一的VCS用户界面(可用于Mercurial, Subversion, Git, Perforce 和其他的 SCM)中得到。
图形页面调试器
- 用户可以用其自带的功能全面的调试器对Python或者Django应用程序以及测试单元进行调整,该调试器带断点,步进,多画面视图,窗口以及评估表达式。
集成的单元测试
- 用户可以在一个文件夹运行一个测试文件,单个测试类,一个方法或者所有测试项目。
可自定义&可扩展
- 可绑定了 Textmate, NetBeans, Eclipse & Emacs 键盘主盘,以及 Vi/Vim仿真插件。
Android studio
简介
Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
功能特色
1、优化小贴士:在主体中打开你的应用,点击小贴士,会得到这样的建议:为你的应用开发平板电脑版本。
2、应用翻译服务:允许开发者直接在开发主体中获得专业的翻译。上传你的需求,选择翻译,其会显示翻译方和价格,并在一周内发回译本。
3、推荐跟踪:允许开发者找出最有效的广告
4、营收曲线图:向开发者展示其应用营收,以国家进行划分
5、试用版测试和阶段性展示:开发者可以对应用进行测试,然后向测试用户推出,测试结果不会对外公布。当一个版本的测试结束,开发者可以向特定比例用户推出
NetBeans
简介
NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeans IDE已经支持PHP、Ruby、JavaScript、Groovy、Grails和C/C++等开发语言。
功能特点(以IDE 8.0为例)
- Java SE 8 嵌入式支持
- Java ME 8 嵌入式支持
- 增强的 HTML 5 支持
- 支持JavaFX 新GUI编程体系
- 支持创建匿名inner class
- NetBeans IDE 8.0 新增功能和重要功能页上列出了其他增强功能。
IntelliJ IDEA
简介
DEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。
功能特色
- 智能的选取
在很多时候我们要选取某个方法,或某个循环或想一步一步从一个变量到整个类慢慢扩充着选取,IDEA就提供这种基于语法的选择,在默认设置中Ctrl+W,可以实现选取范围的不断扩充,这种方式在重构的时候尤其显得方便。 - 丰富的导航模式
IDEA提供了丰富的导航查看模式,例如Ctrl+E显示最近打开过的文件,Ctrl+N显示你希望显示的类名查找框(该框同样有智能补充功能,当你输入字母后IDEA将显示所有候选类名)。在最基本的project视图中,你还可以选择多种的视图方式。 - 历史记录功能
不用通过版本管理服务器,单纯的IDEA就可以查看任何工程中文件的历史记录,在版本恢复时你可以很容易的将其恢复。 - JUnit的完美支持
- 对重构的优越支持
IDEA是所有IDE中最早支持重构的,其优秀的重构能力一直是其主要卖点之一。 - 编码辅助
Java规范中提倡的toString()、hashCode()、equals()以及所有的get/set方法,你可以不用进行任何的输入就可以实现代码的自动生成,从而把你从无聊的基本方法编码中解放出来。 - 灵活的排版功能
基本所有的IDE都有重排版功能,但仅有IDEA的是人性的,因为它支持排版模式的定制,你可以根据不同的项目要求采用不同的排版方式。 - XML的完美支持
xml全提示支持:所有流行框架的xml文件都支持全提示,谁用谁知道。
Code::Blocks
简介
Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境。 Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了著名的图形界面库wxWidgets(3.x)版。对于追求完美的C++程序员,再也不必忍受Eclipse的缓慢。
功能特点
- 虽然Code::Blocks从一开始就追求跨平台目标,但是最初的开发重点是Windows平台,从06年3月21日版本:1.0 revision 2220开始,Code::Blocks在它的每日构建中正式提供GNU/Linux版本,这样 Code::Blocks在1.0发布时就成为了跨越平台的C/C++IDE,支持Windows和GNU/Linux。由于它开放源码的特点,Windows用户可以不依赖于VS. NET,编写跨平台C++应用。
- Code::Blocks提供了许多工程模板,这包括:控制台应用、DirectX应用、动态连接库、FLTK应用、GLFW应用、Irrlicht工程、OGRE应用、OpenGL应用、QT应用、SDCC应用、SDL应用、SmartWin应用、静态库、Win32 GUI应用、wxWidgets应用、wxSmith工程,另外它还支持用户自定义工程模板。在wxWidgets应用中选择UNICODE支持中文。
- Code::Blocks支持语法彩色醒目显示,支持代码完成,支持工程管理、项目构建、调试。
- Code::Blocks支持插件,包括代码格式化工具AStyle;代码分析器;类向导;代码补全;代码统计;编译器选择;复制字符串到剪贴板;调试器;文件扩展处理器;Dev-C++DevPak更新/安装器;DragScroll,源码导出器,帮助插件,键盘快捷键配置,插件向导;To-Do列表;wxSmith;wxSmith MIME插件;wsSmith工程向导插件;Windows7外观。
- Code::Blocks具有灵活而强大的配置功能,除支持自身的工程文件、C/C++文件外,还支持AngelScript、批处理、CSS文件、D语言文件、Diff/Patch文件、Fortan77文件、GameMonkey脚本文件、Hitachi汇编文件、Lua文件、MASM汇编文件、Matlab文件、NSIS开源安装程序文件、Ogre Compositor脚本文件、Ogre Material脚本文件、OpenGL Shading语言文件、Python文件、Windows资源文件、XBase文件、XML文件、nVidia cg文件。识别Dev-C++工程、MS VS 6.0-7.0工程文件,工作空间、解决方案文件。
- Code::Blocks基于wxWidgets开发,正体现了wxWidgets的强大。以前Borland C++Builder X宣称基于wxWidgets开发跨平台、兼容性好、最优秀的C++ IDE环境,但没有实现;让我们拭目以待。国内的Code::Blocks爱好者和跨平台开发员应该尽快建立中文Code::Blocks网站,提供Code::Blocks中文化支持,促进Code::Blocks在国内的发展。