王朝百科
分享
 
 
 

代码评审

王朝百科·作者佚名  2010-09-21  
宽屏版  字体: |||超大  

代码评审也称代码复查,是指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。

通过工具来进行code review不在本次讨论范围内。 评审的内容:

编码规范问题:命名不规范、magic number、 System.out……

代码结构问题:重复代码、巨大的方法和类、分层不当、紧耦合

工具、框架使用不当:Spring、Hibernate、AJAX

实现问题:错误验证、异常处理、事务划分、线程、性能、安全、实现过于复杂、代码可读性不佳、扩展性不好

测试问题:测试覆盖度不够、可测试性不好

代码评审不负责检查功能、逻辑是否正确,这些要靠单元测试和QA工作来解决

代码评审的好处:

提高代码质量

在项目的早期发现缺陷,将损失降至最低

评审的过程也是重新梳理思路的过程,双方都加深了对系统的理解

促进团队沟通、促进知识共享、共同提高

交叉评审——代码走查:团队成员互相检查代码

参与者可以是任意两个组员,或开发组长分别与每个组员结对进行

时机可以选择在下班前半小时,对当天改动的模块进行评审

代码作者讲解如何以及为何这样实现、评审者提出问题和建议

每次解决的问题要记录到SVN注释或JIRA

每次评审不要贪多,如下图所示:当一次评审超过400行代码时,能发现缺陷数显著降低——事倍功半

会审:以项目为单位,召开专门的代码评审会议

参与者:包括项目组全体成员,其它组的开发组长也应尽量参加

时机选择:开发进行到某一阶段时,对共性问题进行总结,对好的做法进行提炼和推广

会前准备工作:

组织者应通知各参与者本次评审的范围

参与者阅读源代码,列出发现的问题、亮点,汇总给组织者

准备工作要细致,需要给出问题详细描述以及相关代码在SVN上的URL地址等

评审代码的选择:

最近一次迭代开发的代码

系统关键模块

业务较复杂的模块

缺陷率较高的模块

会议议程:

如果是第一次会议,先由该项目开发组长做整体介绍

参加者依次发言,结合代码讲解发现的问题

每讲完一个问题,针对其展开讨论,每个问题控制在10分钟以内

如果问题不多,还可以安排该组成员对最近开发的代码进行地毯式的讲解和排查;或者针对某个方面对整个项目做评审,例如性能、安全性或测试

会后总结:

把会上提出的所有问题、亮点及最终结论详细的记录下来,供其他团队借鉴

未能讨论清楚的问题,会后解决

实行代码评审制度前的准备工作:

架构师提供开发规范、指南,为代码评审提供依据

建立起单元测试规范,否则无法达到测试覆盖度的要求、难以修正发现的问题

最好有样例代码库作参照,以提高代码评审的可操作性

提供评审案例:用评审前的代码与评审后优化的代码做对比

问题跟踪:对评审中发现的问题代码应加以跟踪,确保问题得以解决,防止复发

评审到什么程度:

进行全面的代码评审成本较高,也没有必要

对发现的问题要本着集体代码所有制的观点和就事论事的原则,因此建议把代码质量与团队绩效(而不是个人绩效)挂钩

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
中国古代四大美女:背后隐藏惊人秘密
 女性   2025-06-20
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有