`

【转】代码review注意事项

阅读更多
极限编程里提到结对编程和代码Review,凡是稍微懂编程的人看了都会赞成。这也体现了代码Review的重要性和必要性。但是,在实际的执行过程中,代码Review往往很难得到很好的执行。主要原因可能包含以下几点:

(1)对自己编写的代码的不够自信,害怕别人找到问题;

(2) 对于自己的编写的代码过于自信,不觉得需要代码Review;

(3) 对于自己的代码过于封闭,不愿意与别人分享代码编写经验,害怕教会徒弟打师傅;

最近在看《大秦帝国》,其中有个部分,是讲卫鞅的老师公孙座在临死之前,将卫鞅推荐给魏王,魏王拒绝不用此人,原因是魏王觉得卫鞅之时中庶子小吏,无名无地位,也非师出名门,注:庞涓是师从鬼谷子的,故为重用。公孙座便建议魏王杀了卫鞅,以尽为国之职,但在弥留之际,公孙座还是叫卫鞅逃跑,以尽师徒之议。这一段,让我深为感动,古人尚且能够做到老师推荐弟子,而当今在这个知识无国界的当代,我们是否在分享知识方面比古人做得更好呢?题外话,扯远了。言归正传!

个人认为对于一个Team来讲,代码是公开的,同时,还需要定期地做代码Review,帮助每一个Team Member对于编写代码的能力的提高。



如果把一个大的系统比作为一个建筑物的话,那么系统架构就如同钢筋结构,而每一个行代码则是一砖一瓦,架构搭好了,砖瓦不行,系统还是不行。



做代码Review主要考虑:编码的规范、系统架构相关的规范、文档的规范和业务逻辑的一致(即能否满足业务需求)。有了这些,系统的整个开发的质量和代码的质量会上一个新的台阶。

从编码的规范方面,经过查询资料,总结了下列注意事项:

(1)是否符合代码格式化标准(主要参考Sun代码格式化标准)
(2)是否有多余的import项 (如果多余,会耗费多余的资源)
(3)是否定义了多余的field
(4)是否定义了多余的本地变量
(5)是否定义了多余的私有方法
(6)是否有可以重构的逻辑重复的代码 (如有,需要重构)
(7)方法/成员的public/private/static/final属性是否合理
(8)调用静态常量是否使用类/接口名
(9)是否所有实现了java.io.Serializable接口的类都有serialVersionUID (这个感觉很重要,曾经碰到过这样的问题,中间件服务器上的类和本地的类的编译的版本不一样,则报错,实现了Serializable则无此问题)
(10)类/接口/变量/参数名,命名是否规范
(11)所有的if,for,while块内容是否都用{}
(12)是否有功能复杂的语句
(13)将url,文件路径等写死在程序里(硬编码,应用静态常量或Properties文件)
(14)将中文写在程序里 (应用Properties)
(15)系统中使用到的非描述性字符串是否使用常量
(16)系统中使用到的数字是否使用常量
(17)常量是否有详细的注释
(18)程序中是否存在System.out,System.err及Throwable.printStackTrace()
(19)系统中打开的流/文件/连接等是否保证能正常并及时关闭
(20)在输出日志时,低级别的输出一定要判断isXXEnabled
(21)在生产环境中输出大量调试日志
(22)注意使用对象的线程安全
(23)大规模的string组装
(24)递归方法的使用---尽量避免
(25)本地线程对象是否导致memory leak
(26)应用代码中严格禁止硬转 编码,只能在框架里做统一的处理
(27)是否编译过正则表达式,是否有大规模的表达式
(28)在出错路径上是否所有的资源(数据库连接,文件锁等)和引用都已经释放
(29)在保证线程安全的同时,要注意避免过度使用同步,导致性能降低
(30)同步对象上的锁是否按相同的顺序获得和释放以避免死锁,注意错误处理代码
(31)所有的循环是否优化
(32)如果调用了阻塞方法,是否考虑了保证性能的措施
(33)方法(函数)方面检查安全

----代码是无私的,互相提高,互相进步,才是整个Team的进步和系统开发质量的提高之根本。
分享到:
评论

相关推荐

    代码Review 文档

    7. **编程实践中的一些具体注意事项**: - 错误处理:使用异常来表示错误,而非状态或错误代码。 - 注释:公共类和方法应使用.NET样式注释(///summary),说明功能而非实现细节。 - 参数验证:所有方法的参数应...

    Coding Review Checklist(代码审查清单).pdf

    本文将根据“Coding Review Checklist(代码审查清单)”的内容,详细解析其涉及的关键知识点。 #### 二、常规项 1. **代码运行性**:确认代码能够正常运行,这是最基本的要求。如果代码无法运行,那么后续的所有...

    Java项目开发代码Review常见问题实例.doc

    **二.2.2 数据库SQL开发注意事项** - SQL注入:应使用参数化查询来防止SQL注入攻击。 - 未优化的SQL语句:检查是否存在慢查询,考虑索引优化和查询重构。 **二.2.3 数据库存储过程编写** - 存储过程的复杂性:...

    C++ 代码审查 reviewboard

    #### 三、配置 Apache 和其他注意事项 - **配置 Apache**: - 打开 Apache 的配置文件 `httpd.conf`,进行相应的配置调整,确保 Reviewboard 正确运行。 - **MySQL 在 Windows 7 下的问题**: - 在 Windows 7 ...

    代码审查Review讲义

    **4.2 注意事项** - **自我检查**:鼓励开发者在提交代码前进行自我检查。 - **问题发现**:评审的重点在于发现而非解决问题。 - **全员通告**:将共性问题及时告知所有人。 - **记录管理**:确保所有审查记录的真实...

    Source Insight CodeReview宏,增加使用说明

    5. **文档支持**:提供的“Code Review 使用说明.doc”文档详细介绍了宏的安装、配置和使用方法,包括如何导入和启用宏,以及各项功能的操作步骤和注意事项。 6. **代码集成**:“codeReview.em”文件是宏的源代码...

    DBA神技之SQL Review

    2. Schema Review的注意事项: - 明确Schema Review的目标,以功能实现为主。 - 确保在实现业务需求的同时,尽可能地节省资源。 - 平衡业务需求与技术实现,合理取舍。 - 利用数据库擅长的工作,避免让数据库...

    Code Review 使用说明1

    6. **注意事项**: - 审查记录文件应保持特定格式,冒号后需有一个空格,以便于自动统计。 - 不支持合并多个`ReviewComment.txt`文件进行统计,需要手动处理。 通过以上流程,Code Review工具提高了团队协作效率...

    Android review dialog的使用

    5. **注意事项** - 对话框的设计应当简洁明了,避免过多信息导致用户困扰。 - 不要在用户进行重要操作时弹出Review Dialog,以免打断用户体验。 - 使用`AppRate`等第三方库可以简化Review Dialog的实现,它们提供...

    OWASP Code Review Guide

    - **特定语言及框架的注意事项**:针对不同编程语言(如Java、PHP)及框架提出具体的审查建议。 - **自动化代码审查**:讨论自动化工具在代码审查过程中的作用及其局限性。 #### 五、具体技术控制审查实例 - **身份...

    ReviewBoard安装配置手册

    在配置过程中还需要注意一些事项,如解决中文编码问题以及可能出现的相关问题。同时,也可以选择进行ReviewBoard的汉化工作,以适应中文用户的需求。 整个手册覆盖了从前期准备到安装、配置、以及问题解决的完整...

    code-review-checklist

    代码审查注意事项 数据库迁移 将来这种迁移会中断吗? 今天进行的迁移可能会在将来中断。 最常见的原因是引用应用程序代码的迁移。 可以删除或重命名类和方法。 有关示例和解决方案,请参见 。 这需要维护窗口吗? ...

    深入学习C语言知识点checklist

    6. **使用str系列函数时的注意事项:** - 确保有足够的空间来容纳复制或连接的字符串。 - 对于 `strncpy` 和 `strncat`,确保不会超出缓冲区边界。 - 在使用 `strcmp` 和 `strncmp` 前,确认字符串是有效的。 7...

    Java 编程规范CheckList

    文档以表格形式列出了一系列编程过程中需要注意的关键事项,覆盖了代码排版、注释等方面。 #### 二、排版规范 1. **缩进风格**: - 规定程序块采用4个空格的缩进。 - 这种统一的缩进风格有助于提高代码的可读性和...

    某知名企业程序代码编写规范之十

    编码过程中的注意事项 **半10-1 编写代码时要注意随时保存,并定期备份** - **目的**: 防止由于意外情况(如断电、硬盘损坏等)导致的代码丢失。 - **实践**: 使用版本控制系统(如Git)进行代码管理,可以自动...

    Android review 打开activity返回结果

    四、注意事项 - 一定要记得在目标Activity结束前调用`setResult()`,否则启动Activity无法接收到结果。 - `RESULT_OK`和`RESULT_CANCELED`是预定义的常量,但也可以根据需要自定义其他返回码。 - 如果不需要返回...

    贝岭的matlab的代码-code-review-checklist-plugin:用于管理代码审查清单的Chrome插件

    注意事项 默认模板很少包含您可以使用 linter 查找的内容。 不仅每个开发人员或组织的设置都不同,您可以(并且应该)使用计算机进行此检查。 参考书目 释放它! :迈克尔·尼加德 代码完成:麦康奈尔 面向对象系统...

    Emotional-analysis-of-curriculum-review:这是课程复习情绪分析的源代码

    注意事项 每个人一个同名文件夹,放自己当前的成果,供大家一起讨论学习 每个人在自己的文件夹里面写一个‘README.md’,包括自己实现的效果,目前的进度,待解决的问题等 大家互相学习,共同进步,加油!

    google-engineering-practices-notes:阅读Google Engineering Practices文档时的注意事项

    "Code Review"(代码审查)是Google工程实践中的核心部分。它确保了代码的质量,避免了潜在的问题,并促进了知识的共享。在Google,代码审查不仅检查语法和逻辑错误,还关注代码的可读性、可维护性和符合团队的编码...

    INFORMIX官方安装手册

    文档在前言部分强调,用户在使用手册信息和产品之前,必须阅读位于B-1页的“注意事项”。该版本的安装手册替代了先前版本GC27-3537-01,并包含IBM的专有信息。手册在特定的许可协议下提供,并受版权法的保护。手册中...

Global site tag (gtag.js) - Google Analytics