最新原创codereview规范1.docx

上传人:b****4 文档编号:12398850 上传时间:2023-04-18 格式:DOCX 页数:8 大小:19.23KB
下载 相关 举报
最新原创codereview规范1.docx_第1页
第1页 / 共8页
最新原创codereview规范1.docx_第2页
第2页 / 共8页
最新原创codereview规范1.docx_第3页
第3页 / 共8页
最新原创codereview规范1.docx_第4页
第4页 / 共8页
最新原创codereview规范1.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

最新原创codereview规范1.docx

《最新原创codereview规范1.docx》由会员分享,可在线阅读,更多相关《最新原创codereview规范1.docx(8页珍藏版)》请在冰豆网上搜索。

最新原创codereview规范1.docx

最新原创codereview规范1

codereview规范

1.关于CodeReview

1.1CodeReview的目的

CodeReview是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们可以对代码、测试过程和注释进行检查。

CodeReview主要用来在软件工程过程中改进代码质量,通过CodeReview可以达到如下目的目的:

(1)在项目早期就能够发现代码中的BUG。

(2)帮助初级开发人员学习高级开发人员的经验,达到知识共享。

(3)避免开发人员犯一些很常见,很普通的错误。

(4)保证项目组人员的良好沟通。

(5)项目或产品的代码更容易维护。

1.2CodeReview的前提

进入CodeReview需要检查的条件如下:

(1)CodeReview人员是否理解了CodeReview的概念和CodeReview将做什么如果做CodeReview的人员不能理解CodeReview对项目成败和代码质量的重要程度,他们的做法可能就会是应付了事。

(2)代码是否已经正确的build,build的目的使得代码已经不存在基本语法错误我们总不希望高级开发人员或是主管将时间浪费在检查连编译都通不过的代码上吧。

(3)代码执行时功能是否正确CodeReview人员也不负责检查代码的功能是否正确,也就是说,需要复查的代码必须由开发人员或质量人员负责该代码的功能的正确性。

(4)Review人员是否理解了代码做复查的人员需要对该代码有一个基本的了解,其功能是什么,是拿一方面的代码,涉及到数据库或是通讯,这样才能采取针对性的检查。

(5)开发人员是否对代码做了单元测试这一点也是为了保CodeReview前一些语法和功能问题已经得到解决,CodeReview人员可以将精力集中在代码的质量上。

1.3CodeReview需要做什么

CodeReview主要检查代码中是否存在以下方面问题:

代码的一致性、编码风格、代码的安全问题、代码冗余、是否正确设计以满足需求(性能、功能)等等。

1.3.1完整性检查(Completeness)

代码是否完全实现了设计文档中提出的功能需求代码是否已按照设计文档进行了集成和Debug代码是否已创建了需要的数据库,包括正确的初始化数据代码中是否存在任何没有定义或没有引用到的变量、常数或数据类型。

1.3.2一致性检查(Consistency)

代码的逻辑是否符合设计文档代码中使用的格式、符号、结构等风格是否保持一致。

1.3.3正确性检查(Correctness)

代码是否符合制定的标准所有的变量都被正确定义和使用所有的注释都是准确的所有的程序调用都使用了正确的参数个数。

1.3.4可修改性检查(Modifiability)

代码涉及到的常量是否易于修改(如使用配置、定义为类常量、使用专门的常量类等)代码中是否包含了交叉说明或数据字典,以描述程序是如何对变量和常量进行访问的代码是否只有一个出口和一个入口(严重的异常处理除外)。

1.3.5可预测性检查(Predictability)

代码所用的开发语言是否具有定义良好的语法和语义是否代码避免了依赖于开发语言缺省提供的功能代码是否无意中陷入了死循环代码是否是否避免了无穷递归。

1.3.6健壮性检查(Robustness)

代码是否采取措施避免运行时错误(如数组边界溢出、被零除、值越界、堆栈溢出等)。

1.3.7结构性检查(Structuredness)

程序的每个功能是否都作为一个可辩识的代码块存在循环是否只有一个入口1.3.8可追溯性检查(Traceability)代码是否对每个程序进行了唯一标识是否有一个交叉引用的框架可以用来在代码和开发文档之间相互对应代码是否包括一个修订历史记录,记录中对代码的修改和原因都有记录是否所有的安全功能都有标识。

1.3.9可理解性检查(Understandability)

注释是否足够清晰的描述每个子程序是否使用到不明确或不必要的复杂代码,它们是否被清楚的注释使用一些统一的格式化技巧(如缩进、空白等)用来增强代码的清晰度是否在定义命名规则时采用了便于记忆,反映类型等方法每个变量都定义了合法的取值范围代码中的算法是否符合开发文档中描述的数学模型。

1.3.10可验证性检查(Verifiability)

代码中的实现技术是否便于测试。

1.4CodeReview的步骤

这些是我在平时工作中的经验总结,目前也是按照这个步骤在做。

(1)代码编写者和代码审核者坐在一起,由代码编写者按照UC依次讲解自己负责的代码和相关逻辑,从Web层->DAO层。

(2)代码审核者在此过程中可以随时提出自己的疑问,同时积极发现隐藏的bug;对这些bug记录在案。

(3)代码讲解完毕后,代码审核者给自己安排几个小时再对代码审核一遍。

代码需要一行一行静下心看。

同时代码又要全面的看,以确保代码整体上设计优良。

(4)代码审核者根据审核的结果编写“代码审核报告”,“审核报告”中记录发现的问题及修改建议,然后把“审核报告”发送给相关人员。

(5)代码编写者根据“代码审核报告”给出的修改意见,修改好代码,有不清楚的地方可积极向代码审核者提出。

(6)代码编写者bugfix完毕之后给出反馈。

(7)代码审核者把CodeReview中发现的有价值的问题更新到"代码审核规范"的文档中,对于特别值得提醒的问题可群发email给所有技术人员。

提示

CodeReview必备的文档:

“代码审核规范”文档:

记录代码应该遵循的标准。

代码审核者根据这些标准来CodeReview代码,同时在CodeReview过程中不断完善该文档。

2.CodeReivew的执行

一个标准的CodeReivew活动应该分为三个阶段:

2.1.事前准备阶段

在一次CR前,对以下内容进行充分准备。

2.1.1.CR的对象

在准备CR代码对象时,我们要注意代码的数量,如果代码量比较大,要对代码进行必要的分解,确定其中的关键代码,对关键代码进行CR,可以达到举一反三的目的。

2.1.2.CR的内容

我们对代码的审查内容很多,如代码的编写是否规范(注释的书写格式、命名规范等)、技术处理规范(异常处理、日志处理、代码组织结构等)、业务实现等。

我们不能希望通过一次CR活动,完成所有这些内容的审查,因此我们必须设定本次CR活动内容界限,确定审查重点。

2.1.3.评审规范和标准

在CR前设计确定评审规范和标准是必要,通过规范和标准我们在审查过程中可以有据可依,有理可循,而且还可以做到标准统一。

2.1.4.选择CR活动的参与者

在CR开始前,必须把本次CR活动的对象、审查内容以及审查的规范和标准通报给所有的参与者。

2.1.5.选择CR活动的实施方式。

CR活动有很多形式可供我们选择,我们可以根据实际情况选择桌面式CR、演示讲解式CR、一对一的座位CR等等。

2.2.实施阶段

充分的事前准备,只是做好CR活动的前提,在CR实施过程中,我们要做好以下工作。

2.2.1准确记录

对于CR过程发现的问题,我们必须清晰准确的记录,可以使用问题点记录单,明确记录的项目和内容。

2.2.2.讲解与提问

CR过程中,要采用代码作者讲解和审查者提问方式。

审查者不能只在发现问题时提问,同时也要根据本次审查的内容要求代码作者对某个特定问题的讲解。

2.2.3.逐项审查

对事前确定的审查内容,要逐项审查,不能因为时间不足等因素一扫而过。

2.2.4.注意气氛

实施审查时,要营造一个讨论问题、解决问题的氛围,不能把审查会搞成批判会,这样会影响相关人员的积极性。

2.3.事后跟踪跟踪。

2.3.1.确认发现的问题

CR结束后,对发现的问题,首先需要确定以下内容。

1.问题点的难易程度以及影响的范围。

2.解决问题的责任者和问题点修正结果的确认者;3.解决问题点的时限。

2.32.修正问题责任者

对于修正问题责任者,在问题点的修正过程中,要三方面内容的记录。

1.问题点的原因;

2.解决问题点的对策;

3.修正的内容。

2.3.3.修正结果确认者

做为修正结果的确认者,必须按照事前约定的时限及时的对修正结果进行全面的确认。

3.注意事项

3.1.经常进行CodeReview

(1)要Review的代码越多,那么要重构,重写的代码就会越多。

而越不被程序作者接受的建议也会越多,唾沫口水战也会越多。

(2)程序员代码写得时候越长,程序员就会在代码中加入越来越多的个人的东西。

(3)越接近软件发布的最终期限,代码也就不能改得太多。

3.2.CodeReview不要太正式,而且要短

忘了那个代码评审的Checklist吧,走到你的同事座位跟前,像请师父一样请他坐到你的电脑面前,然后,花5分钟给他讲讲你的代码,给他另外一个5分钟让他给你的代码提提意见,这比什么都好。

而如果你用了Checklist,让这个事情表现得很正式的话,下面两件事中必有一件事会发生:

(1)只有在Checklist上存在的东西才会被Review。

(2)CodeReviews变成了一种礼节性的东西,你的同事会装做很关心你的代码,但其实他心里想着尽快地离开你。

只有不正式的CodeReview才会让你和评审者放轻松,人只有放松了,才会表现得很真实,很真诚。

记住Review只不过是一种形式,而只有在相互信任中通过相互的讨论得到了有意义和有建设性的建议和意见,那才是最实在的。

不然,作者和评审者的关系就会变成小偷和警察的关系。

3.3.尽可能的让不同的人Reivew你的代码

如果可能的话,不要总是只找一个人来Review你的代码,不同的人有不同的思考方式,有不同的见解,所以,不同的人可以全面的从各个方面评论你的代码。

但不要太多了,人多嘴杂反而适得其反,基本上来说,不要超过3个人,这是因为,这是一个可以围在一起讨论的最大人员尺寸。

下面是几个优点:

(1)从不同的方向评审代码总是好的。

(2)会有更多的人帮你在日后维护你的代码。

(3)这也是一个增加团队凝聚力的方法。

3.4.保持积极的正面的态度

程序员最大的问题就是“自负”,尤其当我们Reivew别人的代码的时候,我已经见过无数的场面,程序员在CodeReview的时候,开始抨击别人的代码,质疑别人的能力。

太可笑了,我分析了一下,这类的程序员其实并没有什么本事,因为他们指责对方的目的是想告诉大家自己有多么的牛,靠这种手段来表现自己的程序员,其实是就是传说中所说的“半瓶水”。

所以,无论是代码作者,还是评审者,都需要一种积极向上的正面的态度,作者需要能够虚心接受别人的建议,因为别人的建议是为了让你做得更好;评审者也需要以一种积极的正面的态度向作者提意见,因为那是和你在一个战壕里的战友。

记住,你不是一段代码,你是一个人!

3.5.学会享受CodeReivew

这可能是最重要的一个提示了,如果你到了一个人人都喜欢CodeReivew的团阿,那么,你会进入到一个生机勃勃的地方,在那里,每个人都能写出质量非常好的代码,在那里,你不需要经理的管理,团队会自适应一切变化,他们相互学习,相互帮助,不仅仅是写出好的代码,而且团队和其中的每个人都会自动进化,最关键的是,这个是一个团队。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1