欢迎来到天天文库
浏览记录
ID:42757153
大小:335.42 KB
页数:9页
时间:2019-09-20
《分享让人折服的优秀代码基因》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、分享让人折服的优秀代码基因1背景近来参与一个较大团队的项口实施,项口的金额几千万,人数近百。但是,项口实施后,暴霜出以下几个问题:(1)质量不佳,团队成员水平参茅不齐,软件外部质量、内部质量一致性茅;(2)需求不确定,时间非常紧,代码频繁修改,越来越出,效率变低。为了保证项目按时按质交付,质量改善刻不容缓。因此,在项目的初中期开始,做了以下三件事情:(1)制定统一的界面规范,制定了统一参考实例,为所有成员进行定期界面规范的培训和评审;(2)制定统一的代码规范,制定了《评审文化构建》、《代码之七》PPT,培养团队的质量文化和评审文化
2、,实施评审;(3)引入管理工具ReviewBoardo项目统一构建了标准、规范,冇效保证了界面的一致性,但是代码质量的提高却不是那么简单的事情。在这里,我暂不分享项目的情况,未來会通过更加详细的文章来介绍标准、规范化软件开发方法对于项目的重要性。2ReviewBoard介绍这里倒是引出了一款优秀工具ReviewBoardo这款工具简单易用,功能强大。通过它來实施代码评审非常有效。代码评审分为提交前评审(Pre-Review)和提交后评审(Post-Review)两种方式。提交前评审,即开发人员代码变更后,需要捉交到ReviewBo
3、ard,经过评审通过后,才能捉交到SVN源码服务器,如果没有通过评审,则代码提交会失败,一行都无法提交;提交后评审,即开发人员先提交代码,然后再提交变更到ReviewBoard,如果评审未通过,则修改代码,更新评审直到通过为止。这两种方式,各有优劣,我们采用的是后一种,它不阻塞开发人员提交代码,无法100%控制所有质量,但是可以达到80%以上。ReviewBoard设计Z初更多考虑的是支持Pre-Review方式,因此,存在以卜问题:(1)提交通过后‘Review无法自动进行状态变更为关闭,会与所有通过评审的ReviewReque
4、st混在一起;(2)无法看出未通过评审的请求进行再次更新,因为如果再次更新后,意味着要进行第二次评审。在管理过程中,会查询哪些请求没有通过评审,定期给开发人员发送通知。RenewOoord2919hwry•SwpaH•OuV^n.A4lnc<*・■>“«CWnM«m<
5、ted.■«.wK-gU:wMk<1••6■・.・v4*2♦•v*•IIUr^rj!S«Ml$»4un■.如44rr^»Mu^•・.2#44m.»Mu«t••上"k4«m.?2Mun••.wuWl44«M.20»4M■皿44M.ItMuftrlMf4*・W6、0»4Uf«Ur^j!>4m,B>4un•■.wvtQJdm.I)r«une«_p«nr3dm.12tcun?am.I7»cu«因此,我决定对ReviewBoard进行订制來支持以上功能。不过,ReviewBoard是基TPython语言和7、基T*Django框架开发,我从来没有学习过Pylhon,更没有学习过Django,那如何來修改?所以,我开始对ReviewBoard做研究。ReviewBoard最新版本只能在非Windows运行,我在Ubuntu14.04安装部署,同时使用MySQL数据库。因此,我开始来尝试做修改。3尝试修改ReviewBoard3.1探索第一步:数据库首先,研究数据库,惊讶发现其数据库设计非常的整齐,压根不需要查看任何文档即可知道数据库的表、字段的意义。我找到了几个关键的表,分别是reviewsreviewrequest,看看其字段,与界面8、显示几乎一致,一下子就明白什么意思,顺着字段意思,找到了另外的两个关键表diffviewer_diffsethistory>diffviewer_diffseto查询一下这些表的数据,我很容易来諒决第一个问题,通过一条SQL语句即可将通过评审的ReviewRequest关闭,这样就不需要查看到这些评审请求了。ra・一二三壬S三>•」M=h_a一一一一_一============3.2学习Python并修改代码接下來的第二个问题,需要修改代码,我花了3个小时学习了Python,通过在线的英文帮助,直接在控制台做实验,学习基木语法结构9、、学习类与对象编程、学习了Pylhon模块与编译,对Python初步熟悉之后,我决定开始来进行代码修改。因此,我先通过相似列"Submitter"对所有文件进行杳询,通过它很快找到了columns,py和grids,py这两个文件,看了代码Z后,发
6、0»4Uf«Ur^j!>4m,B>4un•■.wvtQJdm.I)r«une«_p«nr3dm.12tcun?am.I7»cu«因此,我决定对ReviewBoard进行订制來支持以上功能。不过,ReviewBoard是基TPython语言和
7、基T*Django框架开发,我从来没有学习过Pylhon,更没有学习过Django,那如何來修改?所以,我开始对ReviewBoard做研究。ReviewBoard最新版本只能在非Windows运行,我在Ubuntu14.04安装部署,同时使用MySQL数据库。因此,我开始来尝试做修改。3尝试修改ReviewBoard3.1探索第一步:数据库首先,研究数据库,惊讶发现其数据库设计非常的整齐,压根不需要查看任何文档即可知道数据库的表、字段的意义。我找到了几个关键的表,分别是reviewsreviewrequest,看看其字段,与界面
8、显示几乎一致,一下子就明白什么意思,顺着字段意思,找到了另外的两个关键表diffviewer_diffsethistory>diffviewer_diffseto查询一下这些表的数据,我很容易来諒决第一个问题,通过一条SQL语句即可将通过评审的ReviewRequest关闭,这样就不需要查看到这些评审请求了。ra・一二三壬S三>•」M=h_a一一一一_一============3.2学习Python并修改代码接下來的第二个问题,需要修改代码,我花了3个小时学习了Python,通过在线的英文帮助,直接在控制台做实验,学习基木语法结构
9、、学习类与对象编程、学习了Pylhon模块与编译,对Python初步熟悉之后,我决定开始来进行代码修改。因此,我先通过相似列"Submitter"对所有文件进行杳询,通过它很快找到了columns,py和grids,py这两个文件,看了代码Z后,发
此文档下载收益归作者所有