code review清单 – 进行有效的code review

2018年12月21日 随笔杂谈 Comments Off on code review清单 – 进行有效的code review

基本代码检查清单

我们来讨论基本的代码审查清单,这对于code review的新手非常有用.

1.自己是否可以很容易的理解代码?

2.代码是否遵循编码规范?

3.相同的代码是否重复两次?

4.是否可以单元测试或者调试代码,定位到问题的根本原因?

5.这个函数或类是否太大?如果是的,函数或类是否有太多的职责?

详细代码检查清单

以下代码审查清单提供了在审查代码时需要考虑的各个方面

1.代码格式化

在查看代码时,检查代码格式以提高可读性,确保没有阻塞:

a)使用对齐(左边距),正确的空格。还要确保代码的开始和结束容易识别。

b)确保遵循正确的命名约定(Pascal,CamelCase等)。

c)代码应符合标准的14寸笔记本电脑屏幕。在21英寸显示器中,不需要水平滚动来查看代码,可以在修改代码的同时打开其他窗口(工具箱,属性等),因此确保代码在14英寸显示器正常。

d)删除掉注释的代码。如果需要,可以从源代码控制(如SVN)获取到。

2.架构

代码应遵循已经定义好的架构。

1.有关分层

根据需要进行分层(展现层,业务层和数据层)。

对文件类型进行划分(HTML,JavaScript和CSS)。

2.代码和现有的代码规范/技术保持同步。

3.设计模式:在完全理解问题和业务之后,使用适当的设计模式(如果可以)。

3.良好的编码习惯

1.没有硬编码,使用常量/配置值。

2.一组相似的值使用枚举(ENUM)。

3.注释 - 不要为你正在做的事情写注释,而是写出你为什么要这么做。指出使用 的技巧,解决方法和临时修复。另外,在to-do注释里写上待处理的任务,可     以方便跟踪。

4.避免多个if/else块。

5.尽可能使用框架提供的功能,而不是自己造轮子。

4.非功能要求

a)可维护性(可支持性) - 希望系统在未来花最少的精力去做维护。应该容易定位和修复问题

1.可读性:代码应该是清晰易读的。可以从代码中读取很多信息,使用恰当的变量名,函数名,类名。如果你用很多的时间去阅读代码,说明代码需要重构或者至少要把注释写的清楚点。

2.可测试性:代码应该很容易被测试。拆分成一个单独的函数(如果需要)。系统的其他层使用接口,可以很方便的mock。避免静态函数,单例类,因为这些不容易被mock测试。

3.可调试性:可以打印日志,参数数据和异常详细信息,可以方便定位到问题原因。如果你正在使用log4net的类似组件,可以添加支持数据库日志,查询日志表很容易。

4.可配置性: 可配置的值放到以下地方(XML文件,数据库表),数据可以自由变更不需要改代码。

b)可重用性

1.DRY(Do not Repeat Yourself)原则:同一代码不应该重复两次以上。

2.考虑可重用的服务,功能和组件。

3.考虑通用函数和类。

c)可靠性 - 异常处理和清理(释放)资源。

d)可扩展性 - 轻松添加功能,对现有代码进行最小的更改。一个组件可以被更好的组件替换。

e)安全性 - 进行身份验证,授权,输入数据验证,避免诸如SQL注入和跨站脚本(XSS)等安全威胁 ,加密敏感数据(密码,信用卡信息等)

f)性能

1.使用合适的数据类型,例如StringBuilder,通用集合类。

2.懒加载,异步和并行处理。

3.缓存和会话/应用程序数据。

g)可扩展性 - 考虑是否支持大用户量/大数据?是否可以部署到集群?

h)可用性 - 站在用户的角度考虑下接口/API是否容易理解和使用,如果你不确定用户接口的设计,可以和业务人员一起讨论你的想法

5.面向对象分析与设计(OOAD)原则

单一责任原则(SRS):不要将多个职责放在单个类或函数中,提取出单独的类和函数。

开放封闭原则:添加新功能时,不应修改现有代码。 新功能应该用新的类和函数来编写。

Liskov替换原则:子类不应改变父类的行为(含义)。子类可以用作基类的替代。

接口隔离:不要创建冗长的接口,而是根据功能将它们拆分成较小的接口。接口不应包含功能不需要的依赖项(参数)。

依赖注入:针对依赖不要硬编码,而是注入它们。

在大多数情况下,原则是相互关联的,遵循一个原则也会满足其他原则。如果遵循“单一责任原则”,则可重用性和可测试性将会加强。

在少数情况下,一个需求可能与其他需求相矛盾。因此,需要根据重要性进行权衡,例如。性能与安全性(UI,中间层,数据库)的检查和日志记录太多会降低应用程序的性能。但是有些系统,特别是与金融和银行有关的应用程序需要很多埋点,审核日志记录等。因此,在性能方面有一点妥协可以增强的安全性。

代码审查工具

1.评估整个项目的代码质量的第一步是通过静态代码分析工具。使用工具(基于技术)如SonarQube,NDepend,FxCop,TFS代码分析规则。有一个说法,静态代码分析工具是为了管理者。

2.使用插件,如Resharper,在Visual studio可以提供非常好的提醒。

3.跟踪代码审查注释使用Crucible,Bitbucket和TFS代码审查过程等工具。

结论

上述代码审查清单并不详尽,但是为代码审查者提供了一个方向,以便进行有效的代码审查并提供高质量的代码。起初,从各个方面审查代码需要一些时间。经过长期练习,代码审阅者可以执行有效的代码审查,不需要太多的精力和时间。如果您想成为专家代码审查人员,此代码审查清单是一个很好的起点。快乐代码审查!

译自:http://www.evoketechnologies.com/blog/code-review-checklist-perform-effective-code-reviews/

Copyright © 知乐思维 保留所有权利.   Ality主题 粤ICP备14062485

用户登录

分享到: