项目管理-源代码管理

简介:

源代码管理是项目管理的一个重头戏,不要小看了,现在很多管理者觉得业务才是必要的,开发的人不值钱,代码推到了可以重来,加加班,没有什么大不了的,对于技术不重视,对于源代码的管理就更加的忽略了,只有出现了问题,才说这说那的。

我觉得一个较好的代码风格,代码习惯,代码结构,代码管理工具,代码管理流程对于一个软件项目的成功尤为重要,对于一个产品项目,甚至是互联网项目来说,那就甚是重要了。至少不比业务次要,试想如果基础没有打好,业务再吹嘘也是徒劳。

当然了,业务也不能疏忽,我是觉得大家都是为了共同的目标,共同做事,分工不同,不应该分主次,厚此薄彼的。

代码管理可以从下面几方面入手来进行改进。

1.代码规范

根据自己公司和项目的情况,制定一个大概的代码规范,例如:前缀,后缀,方法的命名,变量的命名,必要的注释等等。这样不是为了框死每个人,而是为了大家好交流,减少无用沟通,使得整个开发过程更愉快,大家更容易进步,集中精力做事。但也不要太死板,造成大家无所适从。

刚开始有些人会不习惯,通过后面的 review,改掉不好的习惯,这样慢慢就会好起来了。

2.源码管理工具

找一款适合项目和团队的代码管理工具,充分使用源代码管理工具中的主干、分支及合并功能。这方面严重不推荐微软的VSS,个人觉得太不能满足要求了。推荐中心服务器方式的svn或者是cvs,甚至是分布式的git就更好了。

3.code review

代码的review很重要。最好可以找一个专人或者几个专人来做code review,重点模块、重点人的代码还是需要仔细review的。前面说过了,通过review,可以慢慢的调整整体的代码可读性和健壮性,还有代码的结构。

4.其他的方面就请大家补充了。哈哈!!!

 

接下来我说一下代码管理中关于主干,分支,合并的一些概念和使用场景。

1.多人同一文件同一时间的编辑需求

有一个文件,A正在编辑里面的一个方法methodA,这时候同时需要维护文件的methodB。

一种做法是A放下手上的活,赶紧来完成,但是完成后又不敢checkin,因为刚才有未完成的methodA,恐怕编译不过,就算编译通过了,可是功能没有测试,不敢保证methodA是正确的,头大了。

还有一种做法是A写完手头的再来维护,但是等不及了,就需要并行开发,头大了。

还有一种做法是由B来完成这次维护,但是文件被A签出,如果使用VSS的默认模式,是不支持多人签出的,而且VSS也不提倡多人签出,头大了。

并行开发,也是为了提高效率,加快速度,缩小迭代周期。

这时候就需要主干,分支的概念,或者允许多人签出,编辑完成之后,再进行合并。维护的人,就可以搞一个分支,去维护分支中的同一个文件,待后面再合并回来。

2.模块的开发和维护并行

使用VSS管理源代码,配置不允许多人checkout,模块1正在由B进行修改,B边开发边checkin,但是这些checkin的没有经过测试,这时候C需要维护模块2,模块1是模块2的后续处理,可是C获取最新的时候,同时获取了正在修改的模块1的代码,是有点问题的,虽然可以编译通过,但是功能是错误的,就算C修改完了模块2也不能进行测试,因为B本地的模块1的代码不能正常运行,导致后续的模块2没有办法工作。

你也不能不让每个人checkin,或者只让可以测试的才checkin,或者checkout也不能,只能checkout测试没有问题的,你会发现,有了这些约束,就没有办法工作了。局面就是那个人都不敢checkin,那个人也不敢checkout。这样也不行啊。

究其原因,就是因为只有一个主干,大家都是在主干上面开发,导致一个人的修改对其他所有人都有影响,这就很可怕了,尤其是项目做得复杂了,时间长了,人员多了,问题就会更多。

这时候很需要主、分支概念,我觉得应该是有一个主干,然后每个人都有自己的一个分支,这样就可以较好的避免上面的问题。在自己的分支上进行开发,可以不获取别人修改但是又没有测试通过的代码。同时也支持,而且也提倡大家常常的checkin。而且构建可以构建主干的代码,不会因为大家的重构而影响主干的功能。因为重构之后可能还没有充分测试,但是又checkin了重构的代码。

这方面觉得git做的就更加好了,git是分布式的,本地也有一个git库,就是本地也存在一个代码管理库,也有版本管理的概念,不用时时联网才能提交或者获取。可以尽情的在本地建立版本管理,等到联网之后再提交或者更新,而且不用担心源代码管理器的完蛋导致所有版本都消失的恶果。

而且git的另外一个好处是-速度,因为他是打包上传,不是单个文件的上传,所以速度更快。

缺点就是git提倡完全的开源,对于浏览和修改没有做任何的控制,不过这方面有一些第三方的方案可以借鉴,例如gitosis等等。估计也是因为git的完全开源,才使得它更需要本地的版本库,才使得它更强大吧。

结论

当然了,工具毕竟是工具,它不是万能的,不能什么都交给它,希望它帮我们做好一切,那是不切实际的。

但是不可否认,一个好的工具,已经对于工具的正确使用,可以提高我们的效率,可以提高做事的愉悦程度,可以加快我们的进度。

 




本文转自 virusswb 51CTO博客,原文链接:http://blog.51cto.com/virusswb/771841,如需转载请自行联系原作者

目录
相关文章
|
项目管理
艾伟也谈项目管理,【项目管理】关于异地开发中的源代码管理问题
最近在带领一个异地的团队在进行.Net B/S系统开发工作。两地相隔1000多公里, 两地都有开发人员,源码的统一管理就成了需要解决的问题。针对这个问题,想到如下的解决方法: 一、利用Microsoft Visual SourceSafe的Internet功能 优点: 1.考虑使用VSS是因为他与Microsoft Visual Studio集成的很紧密。
1107 0
|
4月前
|
Shell 开发工具 git
云效代码管理可以通过以下步骤统一更换地址链接
【1月更文挑战第21天】【1月更文挑战第102篇】云效代码管理可以通过以下步骤统一更换地址链接
124 1
|
8月前
|
运维 安全 数据可视化
免费托管代码到云效代码管理Codeup
本场景介绍如何提交代码到云效代码管理Codeup。云效Codeup提供免费、不限容量的云上代码托管服务,您无需担心计费问题。
733 0
|
22天前
|
敏捷开发 Serverless 测试技术
云效产品使用常见问题之代码管理单文件超过200m无法上传如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
Shell 开发工具 git
云效代码管理可以通过以下步骤统一更换地址链接
云效代码管理可以通过以下步骤统一更换地址链接
36 3
|
3月前
|
Java Serverless Maven
云效代码管理问题之代码仓库配置需要评审如何解决
云效仓库是阿里云提供的代码托管和版本控制服务,支持Git等多种版本管理工具;本合集聚焦于云效仓库的使用技巧、团队协作流程以及常见问题解答,旨在帮助开发者更高效地进行代码管理和协作开发。
1756 0
|
架构师 开发工具 开发者
《开发者评测》之云效代码管理Codeup评测活动获奖名单
云效代码管理Codeup评测活动获奖名单出炉啦!
|
安全 前端开发 Java
阿里云产品测评 云效代码管理 Codeup
阿里云产品测评 云效代码管理 Codeup
326 1
|
Java 应用服务中间件 开发工具
云效代码管理 Codeup
个人测评,图片你看不了的原因就赖语雀不好使
4126 0
云效代码管理 Codeup