源代码管理的25条建议

上传人:鲁** 文档编号:557288867 上传时间:2023-10-06 格式:DOC 页数:8 大小:301KB
返回 下载 相关 举报
源代码管理的25条建议_第1页
第1页 / 共8页
源代码管理的25条建议_第2页
第2页 / 共8页
源代码管理的25条建议_第3页
第3页 / 共8页
源代码管理的25条建议_第4页
第4页 / 共8页
源代码管理的25条建议_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《源代码管理的25条建议》由会员分享,可在线阅读,更多相关《源代码管理的25条建议(8页珍藏版)》请在金锄头文库上搜索。

1、源代码管理的十条建议源代码管理是我们工作中很重的一部分,是很多开发组的生命。旦是我们往往在这方面犯错, 不理解很多基本的,核心的版本控制的概念。我在这里列出了十条建议,可以说是戒律。虽然我会用Subversion和.NET来做示例, 但这些戒律和你用的编程语言还有源码管理工具无关。1. 彻底抛弃VSS!VSS已死,就让它离去吧。它曾经很有用,但是现在其他VCS(VersionControl System) 已经远远超越了它。微软也决定从明年开始不再支持VSS 了。老实说,在1995年,VSS是一个伟大的工具,但是它的光环早已被它的晚辈Subversion, Git 和 Mercurial 夺去

2、。2. 没有进入版本库,它就不存在你应该每天把这条念一遍-“工作进展的唯一标准就是代码进了版本库”。在代码进 入版本库之前,它相当于不存在。我承认你的代码藏在你机器的某个角落,但是对于其他人来讲,这有何意义?他们不能 拿到你的最新版本,他们不能和你的版本合并,你也不能部署你的代码,一旦你的硬盘坏了, 一切将烟消云散。如果你坚持的执行这一条的话,你会发现其他的好习惯会随之而来。你会自觉的把任务 分成小块所以你可以经常提交代码。你会更加频繁的更新,集成代码。最重要的是,经常提 交代码说明了你正在做东西。3. 尽早提交,尽快提交,经常提交紧接上面一点,防止“幽灵代码”(只在你本地机器上能看到的代码)

3、的唯一的方式就是 把代码尽快的提交到版本库。这么做还有以下好处:每次提交都会生成一个新的版本,给你回滚的机会。假如你把代码搞乱了,你是希望回 滚到一小时前还是一个星期前?间隔的时间越长,代码合并越困难。合并代码从来不是一件好玩的事情。当你好几天都 不提交代码,你会突然发现,你已经累计了 50个冲突要解决,你大概会疯掉。当你坚持经常提交代码的习惯以后,你会发现你的工作代码提交会呈现出一定的规律。 这个规律可以用来指导你的开发工作。当你发现你的团队好几天都没有代码提交的时候,你 就会意识至 U “some thing is wrong”。4. 在提交前检査你的更改提交代码到版本库看起来太简单了。反

4、正在项目的根目录往下有东西更改了,提交吧! 这样会导致你提交了一堆垃圾。很多人看到下面的对话框的时候,往往是选择所有,然后搞 定!于是你的代码库就被污染了,例如debug文件夹之类的。C(wninit 尹chlM阴ppCcnint I0:http 乂册cm 丽听幣EMYAppFELiffcPatinExtensKjnText tatu=Property 血旺 *,诳b画nwvvfira*non-yrannfidnon-vets.non-viaraQned-Cid*iWT二lyeb/obj.iDebugiiT empPEnoi-ers.-unon-veTflcnetinon-vfiTSitain

5、on-mHoned -m 卜/ Show unvefsoned filttd files selected, 66 fies totarlCharges trade (eknjb duSc on file fir dff):还有一些情况是人们提交代码前不检查自己到底更改了什么。例如一个项目配置文件, 你会记得你改了什么吗?也许这次修改就不应该提交呢?如下图所示,这个Web.config文件 为什么被修改了?你可以通过SVN工具对比来查看更改。对于一些可能被更改但是不需要进 入版本库的文件,例如Thumbs.db,你可以用SVN的“ignore”功能来排除它。./ Coffwnit CPraje

6、xtsyAppCommi t tedh-ttss!训冥甜weYAppjtrmk5. 认真填写 “commit messages”填写commit message(提交注释)是有一点枯燥,但是想象一下别人看你的提交注释的 时候是拿着一把斧子,你把他逼疯了他就来砍你!所以不要写“更新了一段代码”这种提交 注释,你会把别人逼疯掉。“commit message”的目的解释你提交代码到底修改了什么。你也许不记得你一年前提 交的一段代码是为什么,但是SVN的注释会让你想起来。31:50: 冈心仍 11 JafuiHrviOW 13:40:56 Tuesday.西 December 20a9 11:05:

7、1 民 Sundayf 6 Dccenter 2WH :57;53, SftWdfrY, 5 DweZ 2OT9 15:52:24 Tuesday, 3 hto,a,&riefCfl:和Monday. 26 Cttcber 2009 16:S3;43. 5也仟S October 2005 15:16b Thjrsdaya 2 场 甜曲 20:42:59. Monday. 2S May 30M 曲;00 ;48 Tunday, 7 October 2003M 诈rv書r t口thg h&ni# P Fiedl CahFkiiv - 占4 Fkw.Repfetced dometchartmg 谢t

8、h ASP diafts far the cah fio昶 page. Renamed al tss Qianged ed Ftdbur曲呂&Fixed StyitCcp futes.Etrought next ctepceoaton forward tirtE month乩 U0dated NUmft ,沿-5曲1EhabT irittgrited ouBi to the db. Mcc IT 托8阿站嫡涉僚畑利6103聞所以,请不要写以下这些注释:修复了一个bug有一个拼写错误更新1024这就是一坨屎提交了你还有见过比这个更烂的注释吗?还有,任何一个人的注释应该是不一样的,而且从逻 辑上来

9、讲永远不可能一样,因为你每次提交代码的基础一定是不一样的,所以你做的事情不 可能一样。6. 你必须自己提交代码,而不是让别人代劳这个听起来有些奇怪。但这种事情确实存在,而且我还遇到过不止一次。有一些团队为 了保证代码库的干净,让一个人专门负责审核和提交代码。这并不是一个好习惯。首先,源代码管理并不是为了保持代码的纯净,起码在开发过程中不是这样。它的目的 是让团队更频繁的集成各自的工作,当有问题的时候可以回退。在这个过程中,并不需要每 一步都很完美。只有在版本发布的时候,我们才需要,或者尝试去达到“干净的代码”。还有,从开发者的角度来看,这么做等于没有源代码管理。因为它意味着没有代码集成, 没有

10、回退,没有blame log,什么都没有。你只是坐在那里写代码,然后在你也无法确定的 时间把代码交给你的老板。7. 数据库的版本控制是必须的这是有很多人想做,但是觉得很困难而做不到的一点。这里的问题是,很多应用没有数 据库根本无法运行。所以如果你不把数据库加入版本控制的话,你的应用是不完整的。大部分的版本控制系统只针对文件系统工作,例如HTML,CSS,图片,配置文件等等任 何保存在文件系统中的东西。但是对于数据库中的数据却无能为力。不过现在也有一些数据库版本控制工具,例如Red Gate出品的SQL Source Control。 关于这个工具我曾经写过很详细的文章Rocking your

11、SQL Sourc Con trol world wi th Red Gate,我在这里就不赘述了。总之,数据库的版本控制也很容易了!8. 编译出来的文件不应该加入版本控制简单的说,就是任何自动生成的东西都不应该放在版本库里面。以.NET为例,所有 “bin”,“obj”文件夹下面的东西(.dll, .pdb等等)都不应该加入版本库。为什么?因为如果这么做了,你团队的其他人会恨死你的。每次他们更新代码都会用你 的编译输出来替代他们的编译输出,会导致他们本地的很多东西不能用。另外一个原因是, 你完全没有必要把这些编译输出放在版本控制里面,它们只是在浪费服务器的硬盘和带宽。9. 别人不在乎你的个人

12、配置很多时候,人们没有意识到它们正在提交它们自己的个人配置到版本库。开发工具往往 会生成一些配置文件,记录你的文件路径,字体设置,快捷键设置等等,这些东西只对你有 用。以.NET项目为例:tsibe modrfiedType金电.5-m29/D4/20UFitftfekkr_Rt5ha rpieriMyAppFile folderQ Web2PAM/2D11 110Fil 舉 fold 枚土 隔如白51,展胆山轴1747VisualP商吐Lh职 0献亦出 fil亡1 K8開 MyApp.dmy icroso ft Vual Studio blub号.丄甘MyAfsp.s-uc29/042011

13、17;47“曲:v ;-;.i.:讷.昭两困 WW/.IT1G8-C0M10. 依赖项也需要添加到版本库虽然这是最后一条,但也是很重要的。如果你的代码需要依赖第三方的类库或者文件, 你需要把这些文件也添加到版本库。你不能认为程序在你的机器可以跑,就在别人的机器上 也能跑。你团队的其他成员也许没有这些依赖的文件,他们更新了你的代码以后,会导致项 目无法编译或者程序无法运行。我今天还遇到一个这样的问题。我拉下了很久以前的一个项目,然后出现下面的编译错 误:J 37 Errors r 2 YVarn:ngs . i. (FMesiagesDeEcripticnThe type or nam-epd

14、匚匕 name NUnrttculd not be fcundErr fQUm issing ausmg diT-tctiYt o-r dssemkHy gThe type or ram-tspct namtNUnitcould not te found(vre ycum issing ausmg difectivt or an assembly VThe type or nam-Kfljet narne NUnifcould not tie found(are ycunussmg using dirsctfVE i?r anisstmblylT Fie type or nafn.wpJee njrntNUutrould not te found(are /pumissing usi ng dirctn/t c-r r 4 si cmbly d,Tht type Or nirT*ttpCe ftsmt TtstFudunrAttrfbutc could not be kuT (are yu rniing s uiin directwve oA rhe type &r nrrbtSfjjGe rtime Te-ttFitur* could “tt be ound 怕

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 模板/表格 > 财务表格

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号