软件项目配置管理工具的使用体会

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件项目配置管理工具的使用体会

高效的工作必定是有序的管理和投入的工作结合产生的。

软件项目配置管理,不仅对团队开发而已具有必不可少的重要性,能够帮助团队成员搭建统一的开发环境、对软件代码进行版本控制、管理项目文档以及为团队成员提供正式、有规则的交流平台,对于个人开发依然具有极大的帮助,比如它的版本控制功能和文档的管理功能。因此,在软件项目开发中,必须使用配置管理软件协助开发过程,而选择何种管理软件和使用的方法同样也是很重要的事。

到目前为止,我使用或是了解了共三款项目配置管理软件(组件),分别是Maven,GitHub和SVN。接下来,

一、首先分别大致介绍三款软件的特点和优劣;

二、然后在限定范围内,对这三款软件进行比较;

三、最后陈述我的个人看法和体会。

一、关于三款软件的简单介绍

Maven:

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于Maven 的缺省构建规则有较高的可重用性,所以常常用两三行Maven 构建脚本就可以构建简单的项目。由于Maven 的面向项目的方法,许多Apache Jakarta 项目发文时使用Maven,而且公司项目采用Maven 的比例在持续增长。

Maven最大的特点是只需要简单的构建工程即可使用,能够有效地帮助开发人员了解、获取与、统一工程开发所需的开发包。尤其是在协作开发的环境下,Maven有效地解决了各个开发成员间可能存在的开发包版本不一致问题,避免了后期因此产生的版本冲突。

通过上面的描述也能发现,Maven虽然易于使用,但主要用于项目初期时对项目创建的统一管理,这也是Maven的局限性。对于大型项目而言,使用了Maven之后,还必须使用其它针对项目创建之后过程的项目配置管理软件,这样才能有效地进行项目配置管理。

GitHub:

GitHub作为一个分布式的版本控制系统,并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。

GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。

已经有人将GitHub称为代码玩家的MySpace。

在GitHub进行分支就像在Myspace(或Facebook…)进行交友一样,在社会关系图的节点中不断的连线。

GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私有的、公共视图不可见的库中。开源项目可以免费托管,但私有库则并不如此。Chris Wanstrath,GitHub的开发者之一,肯定了通过付费的私有库来在财务上支持免费库的托管这一计划。

也就是说,GitHub最大的特点是支持分布式的项目管理,项目开发团队可以在Git上创建一个项目总库,再由开发成员在各自的开发设备上维护相应的分支(甚至也能维护总库的克隆版本),当需要提交代码时,GitHub将自动比对总库和分支,检测冲突性的提交,标注更新的部分,最终完成总项目的更新。此外,GitHub还是开发成员相互讨论的平台。

GitHub提供了专门的讨论空间,开发人员可以就某一主题进行讨论,讨论的内容相当于作为记录被保存下来,能够被日后再次查看,这也能帮助某分支以外的人员了解该分支情况,进而减少不必要的交流,有效地提高了团队的整体效率。

从使用的阶段而言,GitHub和Maven是互补的,可以先利用Maven创建总工程,然后将工程通过GitHub进行管理,分派到各个项目成员中。这样做,不仅保证了所有项目成员开发库的一致性,还对项目正式分工之后的过程保持管理,促进成员沟通、保留讨论记录。如果中途出现开发库的重大更改,可以重复创建过程,也就是说,这种情况下Maven和GitHub可以迭代使用,以保证对项目开发进行有效管理。

SVN:

上述的Maven和GitHub在使用阶段方面已经涵盖了软件项目开发的全过程,所以如果从如何有效利用项目配置管理软件来完成一个项目的角度来说,似乎也不必再了解其它软件了。但是,选择需要的软件时,除了从适合的使用阶段考虑,项目的规模、项目的类型、项目的特殊要求等方面进行充分考虑。

SVN和GitHub的共同之处是,二者都是开放源代码的版本控制软件,同时也都采用了分支管理系统,然而与GitHub的分布式特征相反,SVN是集中式管理。

集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。

然而,相对于分布式管理而言,集中式管理最突出的优点就是便于管理和安全性。

SVN站在更高层次上对安全产品,从系统和控制的角度进行了"有机"和"无隙"的整合。

SVN是一个安全虚拟网络系统,它将系统整体的信息安全功能均衡合理地分布在不同的子系统中,使各子系统的功能得到最大限度的发挥,子系统之间互相补充,系统整体性能大于各子系统功能之和,用均衡互补的原则解决了"木桶原理"的问题。

SVN能在跨接Internet,Intranet,Extranet间的网络所有端点实现全面的安全,而且还能提供基于企业策略的信息管理机制以充分有效地利用有限的带宽。SVN可以满足各种企业VPN的要求,通过为公司内部网络、远程和移动用户、分支机构和合作伙伴提供基于Internet 的安全连接。所以,我们可以将SVN看成是VPN、防火墙、基于企业策略的信息管理软件集成在一起的Internet安全的综合解决方案。在这样一个网络系统中,所有互联网服务器端和客户端都是安全的,并有一个信息管理机制以不断地通过这个外部网络环境动态地分析及

相关文档
最新文档