201871030122-牛建疆 常用源代码管理工具与开发工具
项目 | 内容 |
---|---|
课程班级博客链接 | 班级博客链接 |
作业要求链接 | 作业要求链接 |
我的课程学习目标 | (1)了解软件项目源代码常用管理工具。 (2)了解软件项目源代码常用集成开发软件工具。 |
这个作业在哪些方面帮助我实现学习目标 | 提高编程的效率 |
实验内容
任务1:调研源代码版本管理软件
上网调研目前被广泛使用的基于源代码版本管理软件Git的项目管理工具,如GitHub、Gitlab、Bitbucket 等,比较它们之间的异同(包括但不限于团队协作流程,项目管理等)。
1.Github
-
简介
- 面向开源及私有项目的托管平台,只支持Git作为唯一的版本库格式进行托管。
- 它是一个开源代码库以及版本控制系统。
-
基本功能
- Git代码仓库托管及基本的Web管理界面,以及订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。
- 用于代码托管,上传代码,云端备份。
- 托管编程环境。
- 从另外一个项目进行分支的简易性,项目贡献代码简单。
- 在线编译文件的功能。
- Github Pages 可以为项目建立静态主页,也可以建立个人静态网站。
- 个人简历,找工作,面试加分。
- 快速搜索,存储库提供方便的项目结构,允许有效地搜索和排序。
-
优点
- GitHub 对 Git 版本库提供了完整的协议支持,支持 HTTP 智能协议、Git-daemon、SSH 协议。
- 将社交网络引入项目托管平台。用户可以关注项目、关注其他用户进而了解项目和开发者动态。
- 项目的 Fork 和 Pull Request 构成 GitHub 最独具一格的工作模式。对提交代码的逐行评注及 Pull Request 构成 GitHub 特色的代码审核。
- 用户受益,GitHub 不必以页面中嵌入广告的方式维持运营。
- GitHub 网站采用 Ruby on Rails 架构,在 Web 设计中运用了大量的 JavaScript、AJAX、HTML5 等技术,支持对使用 Markdown 等标记语言的内容进行渲染和显示等。
-
缺点:
- 服务不完全免费;
- 大小限制:文件大小不能超过100Mb,存储库可托管信息1Gb。
2.Gitlab:
-
GitLab 是用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。
-
应用特点是:
- Web框架使用RubyonRails。
- 基于MIT代码发布协议。
- 需要gitolite协同工作。
-
它拥有与GitHub类似的功能,能够浏览代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史历史库。
-
与GitHub的区别
-
Gitlab更适合企业级使用。
-
免费,但界面较慢。
-
Gitlab可以在上面搭建私人的免费仓库。
-
GitLab让开发团队对他们的代码仓库拥有更多的控制,相对于GitHub,它有不少的特色:
(1)允许免费设置仓库权限
(2)允许用户选择分享一个project的部分代码
(3)允许用户设置project的获取权限,进一步提升安全性
(4)可以设置获取到团队整体的改进进度
(5)通过innersourcing让不在权限范围内的人访问不到该资源
-
-
与GitHub的相同之处
二者都是基于web的Git仓库,在很大程度上GitLab是仿造GitHub来做的,都提供了分享开源项目的平台。
3.Bitbucket:
-
BitBucket 是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户。
-
特点是:
- 无限制的私有仓库个数
- 无限制的磁盘空间
- 同时支持https/ssh
- Bug 跟踪
- 项目Wiki
- API 支持
- 灵活的权限控制
- 可自定义域名
- RSS 修改记录输出
- 自定义下载
- Bitbucket既稳定又强大的免费空间
-
与GitHub相比,Bitbucket的HTTPS推送更便捷,免费套餐容量更大有自己的私有仓库,二级域名个人主页完成时间短,域名长度较长,记忆困难,界面语言只有英语。
任务2:调研并试用广泛使用的源代码集成开发工具软件
1.MyElipse
- 它是在Eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。目前已支持PHP、Python、Vue、Angular、React、Java、Java EE等语言和框架开发。
- 功能特色:
- 企业级开发。MyElipse为完成工作提供了智能的企业工具。
- 云开发。脱离缓存,使用内置功能连接到云。
- Java Web开发。它支持快速添加技术功能到web项目中。
- 移动开发。MyElipse支持使用Java,HTML和JQuery编码,还可嵌入到原生IOS和Android应用中。
- 优化Java EE开发。
- 保持厂商中立。MyElipse为websphere开发提供了工具,并支持大量其他的关键性技术。
- restful Web服务开发。支持使用REST Web服务创建云应用。
- 使用构架等提升Java Spring项目。
- 支持以最小的代价将流线型的IDE安全地交付。
- MyElipse一次性提供了大量的关键技术,在使用中得到广泛额技术积累。
2.Visual Studio
- Visual Studio 是完整的集成开发环境 (IDE),可用于开发适用于 Windows、Web 和其他平台的应用。 它由源代码编辑器、设计器、编译器和调试器组成。
- 高效性方面的常用功能:
- 波形曲线和快速操作
- 波形曲线是波浪形下划线,它可以在键入时对代码中的错误或潜在问题发出警报。 这些可视线索使你能立即修复问题,而无需等待在生成期间或运行程序时发现错误。 如果将鼠标悬停在波形曲线上,将看到关于此错误的其他信息。 左边距中也可能会出现一个灯泡,提供修复此错误的“快速操作”建议。
- 重构
- 重构包括智能重命名变量、将一个或多个代码行提取到新方法中、更改方法参数的顺序等操作。
- IntelliSense
- IntelliSense 由一组功能构成,它可用于在编辑器中直接显示代码相关信息,还能在某些情况下编写小段代码。 如同在编辑器中拥有了基本文档内联,从而节省了在其他位置查看类型信息的时间。 IntelliSense 功能因语言而异。
- Visual Studio 搜索
- visual Studio 有时会因为有如此多的菜单、选项和属性而让人不知所措。 Visual Studio 搜索 (Ctrl+Q) 是在同一位置快速查找 IDE 功能和代码的绝佳方法 。
- Live Share
- 与他人实时协作编辑和调试,无需考虑应用类型或编程语言。 可以即时且安全地共享项目,并根据需要调试会话、终端实例、localhost Web 应用和语音呼叫等。
- 调用层次结构
- “调用层次结构”窗口显示调用所选方法的方法。 考虑更改或删除方法时,或者尝试追踪 bug 时,这可能是有用的信息。
- CodeLens
- 转到定义
- 查看定义
- 波形曲线和快速操作
3.HBuilderX
- HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE。HBuilder的编写用到了Java、C、Web和Ruby。HBuilder本身主体是由Java编写,它基于Eclipse,所以顺其自然地兼容了Eclipse的插件。
- 特点:
- 通过完整的语法提示和代码输入法、代码块等,大幅提升HTML、js、css的开发效率。
- 界面简单清爽。
- 有强大的语法提示
HX
自研了强大的AST语法分析引擎,能对代码进行深度语法分析,给予准确的语法提示和转到定义,而不是猜单词。
- 高效字处理能力
- markdown优先
- 更强的json支持
HX
提供了比其他工具更高效的操作
- 更强的vue支持
HX
应该是对vue支持最好的开发工具,让vue开发者效率倍增
- 扩展性
- 支持java插件、nodejs插件,并兼容了很多vscode的插件及代码块。
4.Microsoft Visual Studio(简称VS)
- Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台。
5.PyCharm
-
PyCharm 是由 JetBrains 打造的一款 Python IDE。首先,PyCharm用于一般IDE具备的功能,比如, 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。
另外,PyCharm还提供了一些很好的功能用于Django开发,同时支持Google App Engine,更酷的是,PyCharm支持IronPython!
-
功能:
- 智能代码辅助功能
- PyCharm提供智能代码补全、代码检查、实时错误高亮显示和 快速修复,还有自动化代码重构和丰富的导航功能。
- 智能代码编辑器
- PyCharm的智能代码编辑器可为Python、JavaScript、CoffeeScript、TypeScript、CSS和热门模板语言等提供一流支持。 充分利用可感知语言的代码补全、错误检测和实时代码修复!
- 智能代码导航
- 使用智能搜索跳到任何类、文件或符号,甚至任何IDE操作或工具窗口。 只需点击一下即可切换到声明、超级方法、测试、用法和实现,等等。
- 快速且安全地重构
- 智能代码辅助功能
6.Android studio
- Android Studio 是谷歌推出的一个Android集成开发工具,基于[IntelliJ IDEA](https://baike.baidu.com/item/IntelliJ IDEA). 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
- 主要功能:
- Android Studio是谷歌推出了新的Android开发环境,开发者可以在编写程序的同时看到自己的应用在不同尺寸屏幕中的样子。
- 优化小贴士:
- 在主体中打开你的应用,点击小贴士,会得到这样的建议:为你的应用开发平板电脑版本。
- 应用翻译服务:
- 允许开发者直接在开发主体中获得专业的翻译。上传你的需求,选择翻译,其会显示翻译方和价格,并在一周内发回译本。
- 推荐跟踪:
- 允许开发者找出最有效的广告
- 营收曲线图:
- 向开发者展示其应用营收,以国家进行划分
- 试用版测试和阶段性展示:
- 开发者可以对应用进行测试,然后向测试用户推出,测试结果不会对外公布。当一个版本的测试结束,开发者可以向特定比例用户推出。
7.NetBeans
- NetBeans是开源软件开发集成环境,是一个开放框架,可扩展的开发平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeans IDE已经支持PHP、Ruby、JavaScript、Groovy、Grails和C/C++等开发语言。它本身是一个开发平台,可以通过扩展插件来扩展功能。
8.IntelliJ IDEA
- IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。
- 特色功能
- IDEA所提倡的是智能编码,减少了程序员的工作。
- 历史记录功能
- 灵活的排版功能
- 动态语法检测
- 程序员意图支持
- 预置模板等等
- 优点:
- 最突出的功能自然是调试(Debug),可以对Java代码,JavaScript,JQuery,Ajax等技术进行调试。
- 比如查看Map类型的对象,如果实现类采用的是哈希映射,则会自动过滤空的Entry实例。
- 其次,需要动态Evaluate一个表达式的值,比如我得到了一个类的实例,但是并不知晓它的API,可以通过Code Completion点出它所支持的方法。
- 最后,在多线程调试的情况下,Log on console的功能可以帮你检查多线程执行的情况。
9.Code:: Blocks
-
Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境。 Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了著名的图形界面wxWidgets(3.x)版。
-
主要特点:
-
Code::Blocks提供了许多工程模板,另外它还支持用户自定义工程模板。
-
支持语法彩色醒目显示,支持代码完成,支持工程管理、项目构建、调试。
-
支持插件,包括代码格式化工具AStyle;代码分析器;类向导;代码补全;代码统计;编译器选择;复制字符串到剪贴板;调试器。
-
Code::Blocks具有灵活而强大的配置功能。
-
任务3:撰写任务1、任务2相关内容博客
- 练习使用typora进行MarkDown格式博客的本地编辑和实时预览,编辑完成后复制到博客园中。