团队源代码管理

在现代软件开发项目中,要成为一个有效的软件开发人员,我们必须能够与其他项目贡献者并行进行开发。源代码管理(SCM)系统不是什么新思想。为了编写一些能够更快速、简单地开发以后软件项目的软件,已经进行了很多尝试。最新的源代码解决方案都包含了版本控制系统,它可以对源代码的修改进行回滚,从而将有害的代码剔除出项目之外,或者简单地跟踪哪些人修改了代码的哪些行的内容。版本控制系统试图解决开发人员在试图同时对某个文件进行修改时所出现的冲突问题,可以防止用户覆盖其他人所作的修改。源代码管理使用的很多流行解决方案都试图解决以前 SCM 解决方案中的失效问题。


集中化的版本控制系统通常采用两种方式:

有些提供了文件锁来防止多个用户的并行访问。这些系统对文件进行加锁,这样在某个时间只有一个开发人员对中心仓库具有写入权限。
另外一些工具,例如 CVS,允许多个开发人员同时对相同的文件进行编辑,并提供了一些机制稍后合并这些修改。
流行的版本控制系统包括:
CVS
Subversion
Arch
Bazaar
BitKeeper


一.源代码签入

团队的在处理文件的锁定问题上可以是不加锁的,也就是说成员可以自由迁入迁出。如果现阶段的开发规模比较小,于是为了最大化效率,可以不用对文件迁入迁出进行过多的限制。将文件在迁入迁出时加锁,显然可以保证源代码修改的同步性,减少不必要的冲突和错误,但是这样的缺点是显而易见的,由于缺乏了并行性,项目开发的效率就被极大地降低了,极端情况下很有可能因为一个人的失误,导致全队项目的搁浅。反之,采用自由迁入迁出的方式,则与前者的优缺点互反了。



二.源代码复审定义:看代码是否在“代码规范”的框架内正确地解决了问题。

软件工程中最基本的复审手段,就是同伴复审。让最有经验,熟悉这一部分代码的人来做代码复审。对于至关重要的代码,要请不止一个人来做代码复审。

复审的目的在于:
  
1. 找出代码的错误。如:

a. 编码错误,比如一些能碰巧骗过编译器的错误。

b. 不符合项目组的代码规范的地方。


2. 发现逻辑错误,程序可以编译通过,但是代码的逻辑是错的。


3. 发现算法错误,比如使用的算法不够优化。


4. 发现潜在的错误和回归性错误——当前的修改导致以前修复的缺陷又重新出现。


5. 发现可能改进的地方。


6. 教育(互相教育)开发人员,传授经验,让更多的成员熟悉项目各部分的代码,同时熟悉和应用领域相关的实际知识。



三.源代码冲突
首先根据代码管理器的情况,确定是否支持多签出,如果不允许,那就基本可以确定是冲突1(说明:由于本地版本与服务器版本不同,导致获取服务器版本时的冲突。该冲突多见于多人开发且分工不明确的VSS中);如果允许多签出,获取文件或者签出时会出现冲突1相同的问题,还有可能是签入时的冲突2(说明:由于修改前版本与服务器端版本不一致导致冲突产生。该冲突多见于SVN服务器或特殊设置的VSS服务器);这两种情况之外,还有CM对代码分支进行合并等操作导致的冲突,这种冲突这种冲突是必须的,而且大部分需要手动处理,算是冲突3。
posted @ 2016-04-20 17:37  两百斤不含头  阅读(417)  评论(0编辑  收藏  举报