`

Code Review那些事儿

阅读更多

       曾经有一段垃圾代码放在我的面前,我没有拒绝,等我真正开始接手的时候我才后悔莫及,程序员最痛苦的事莫过于此!---------改编于周星星的经典台词。酷

 

      虽然有点夸张,但编码界确实大大存在这种情况,每当接手别人的代码,都有一种想重新写一遍的感觉,等到别人再来接手你的代码时,同样的感觉。。。为什么会有这种现象存在?因为没有Code Review

 

一。前言

       Code Review中文应该译作"代码审查"或是"代码评审",也叫代码QC,这是一个流程,当开发人员写好代码后,需要让别人来review一下代码,这是一种有效发现BUG的方法。review之后,可以发现代码的风格、逻辑、思路等问题。然后改进代码,提高代码质量。因为这是代码刚刚出炉的时候,所以,这也是代码调整、代码修改、代码重构的最佳时候。所以,Code Review是编码实现中相当重要的一个环节。

 

二。Code Review的内容

1.编程素养

       见码如见人,代码风格在一定程度上反应一个程序员的能力和素养,如代码风格、注释、变量的命名、缩进、初始值、方法的长度、流是否关闭、连接是否关闭

 

2.业务逻辑

  代码实现的过程,就是对需求理解的一种复现,如果业务逻辑都错了,代码写得再漂亮、再牛B也是枉然

 

3.架构设计

      业务逻辑实现了,只能给60分,代码是否具有高内聚、松耦合、可扩展的特性?是否合理设计模式?

 

4.单元测试

      没有经过单元测试的代码,不是好代码。大多数开发人员认为,测试的环境是测试人员做的事,不然要测试人员做甚?其实不然。

      单元测试是一种无价的文档,它是展示方法或类如何使用的最佳文档。这份文档是可编译、可运行的,并且它保持最新,永远与代码同步。

      单元测试也是架构设计的一部分,迫使我们在设计时把代码设计成可调用、可测试,从而降低代码的耦合。自动化的单元测试避免了代码出现回归,编写完成之后,可以随时随地的快速运行测试。

 

5.性能

       对数据结构的选择和设置是否合适?

       是否采用通用的线程池、对象池模块等cache技术以提高性能?

       是否选择合适的IO类或采用良好的方法以提高性能?

       同步方法的使用是否得当,是否过度使用?

 

6.安全

       是否有后门?

       如果是web页面,是否有csrf、xss漏洞?

       是否明文存储了用户名密码?

       日志中是否打印了敏感信息?

 

三。review的方式

1.借助软件,软件请看第四点。

      建议开发人员都安装这些插件,发现问题时及时就改了

 

2.项目负责人或架构师review

      晚上review是最好的时机,一般没有人打扰,没有会议,我一般选择这个时候

 

3.开发人员两两互review

      开发人员两人一组,一天一次,review当天的代码。但过于频繁,久而久之就成了过场,然并卵。。。

 

4.开发人员在会议室review,个人更倾向于这种

      代码review最好采用小会议室,开发人员一起review,时长一小时最好,不宜过长,在开发阶段一周一次review。讲解人(开发人员)选取自己本迭代做的某个功能点,先讲业务,然后讲架构、实现过程、再讲代码,期间有问题时可以随时打断,听众提问,讲解人一一作答。个人更倾向于这种。酷

  

四。常用的review软件

     在敏捷开发中,每个迭代的工作量大概在两三周左右,代码量不是很多,但是如果要项目负责人或架构师一一QC所有开发人员的代码,也是个不小的任务,所以,往往需要借助第三方工具。

 

1.checkstyle

      这是一个代码风格的检查工具,要求过于苛刻,一般很难让所有开发人员都按这个标准来。

 

2.PDM

      这是一个静态代码扫描工具,直接扫描java源码,可以发现很多重复的代码、未使用的代码、复杂的表达式、潜在的bug。

 

3.findbugs

      直接操作class文件而不是源码,着重于发现代码中的bug,不注重style及format

 

五。注意事项

1.代码review应该在良好的气氛中进行,这不是批判大会,不应有人身攻击,应就码论码。

2.代码review的目的是提前发现问题的好时候

3.代码review可以让知识共享,是互相学习的好机会

4.代码review能防止某个开发人员单点,让更多的了解他的代码,当他请假或离职,不至于手忙脚乱,有效HA

5.代码review一定要有记录,完事后发出会议纪要给所有开发人员,限期整改,项目负责人或架构师在上线前再次review

 

六。后记

从开发人员来看,代码review会逐步让TA改正不好的习惯,提高编码、设计、架构能力,从而走向人生巅峰,迎娶白富美,哈哈。。。

 

从团队来看,能改善工作氛围、提高团队的凝聚力。

 

从项目来看,可以提前发现问题,减少bug,提高稳定性,不再到处救火。

 

分享到:
评论

相关推荐

    Source Insight CodeReview宏,增加使用说明

    **Source Insight CodeReview宏**是专门针对Source Insight这款强大的源代码查看和编辑工具设计的一套扩展功能,主要用于代码评审和统计。Source Insight以其强大的代码导航、语法高亮和实时分析能力,深受程序员...

    Modern Code Review- A Case Study at Google.pdf

    Employing lightweight, tool-based code review of code changes (aka modern code review) has become the norm for a wide variety of open-source and industrial systems. In this paper, we make an ...

    CodeReview工具

    Code Review是软件开发过程中的一个重要环节,它有助于提高代码质量,发现潜在的错误,以及确保团队成员间的代码风格一致。本文将详细介绍两款Eclipse插件——Jupiter和Reviewclipse,它们是进行Code Review的有力...

    IDEA代码检视插件Code Review Helper(支持团队协同)

    在实际使用中,下载的压缩包文件"IntellijIDEA-CodeReview-Plugin-master"包含了插件的源代码,开发者可以对其进行定制或扩展以满足特定团队的需求。安装插件通常包括以下几个步骤: 1. 解压下载的压缩包。 2. 打开...

    CodeReview工具Jupiter

    Code Review的作用和意义已在很多技术团队内达成共识,可是很多时候并未被有效执行,甚至被认为是一项费时费力的工作。借助一些工具可以更容易,更有效率地来进行Code Review,本文介绍的Jupiter即是其中之一。  ...

    Source Insight 宏 codeReview.em

    CodeReview工具的作用:1.减少评审人的缺陷记录和汇总时间,方便责任人查找问题出处;2.检视完成后生成检查报告,代码作者点击按钮可以直接找到错误处;3.任务责任人修改完成后,直接修改问题状态,组织者按快捷键...

    代码审查CodeReview的最佳实践

    我一直认为CodeReview(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题。包括像Google、微软这些公司,CodeReview都是基本要求,代 我一直认为CodeReview(代码...

    Redmine插件Code Review使用介绍

    在Redmine中,Code Review插件是一个重要的扩展,它致力于帮助开发团队进行代码审查,提升代码质量和团队协作效率。本文将详细介绍如何使用Redmine的Code Review插件。 首先,安装Code Review插件是必要的步骤。...

    静态测试方法之代码审查(CodeReview)的清单

    静态测试方法之代码审查(CodeReview)的清单。代码审查可以帮助提高代码质量,避免由于代码习惯而造成的bug。下面列出的这些要点因该可以作为大部分代码审查的指导,如果是Java应用的话,这些建议应该被视作最佳实践...

    PHP-Code-review.rar_PHP codereview_php code review_php代码review

    代码审核,是对应用程序源代码进行系统性检查的工作。它的目的是为了找到并且修复应 用程序在开发阶段存在的一些漏洞或者程序逻辑错误,避免程序漏洞被非法利用给企业带来不必 要的风险。

    CodeReview.em

    source insighet 集成code review,代码审核时非常好用,使用起来比较简单,加入工程,同步,添加快捷键,使用快捷键即可正常使用,保存即可。

    CodeReview常見代碼問題

    ### CodeReview中的常见代码问题分析 #### 一、引言 在软件开发过程中,CodeReview(代码审查)是一项至关重要的活动。它不仅有助于提高代码质量,还能促进团队成员之间的知识共享和技术交流。本文将深入探讨Code...

    C++ Code Review检查清单

    C++代码 Code Review时使用的检查清单和问题记录模板

    Steven Code Review 代码在线审查

    Steven Code Review 2009.12M1发布包.rar 代码在线审查工具 @date: 2009-12-28 @author: YF @email: yifi@tom.com 功能: 1 方便学员学习教师的代码,无需在本机运行IDE即可以代码加亮的方式查看服务器共享的代码...

    code review

    `CodeReview.em`可能是一个包含了代码审查过程记录或结果的文件,而`codereivew.docx`可能是详细的代码审查报告,其中可能详细列出了审查过程中发现的问题、建议的修改以及后续的行动计划。通过这两个文件,团队成员...

    Codereview 代码审查工具(国人开发)

    软件介绍: 一、软件特色 功能丰富:实现文件内容、度量、命名、注释、类图、Halstead等审查。 简单易用:无需安装,直接使用,直接删除;... 直观可视:分析结果与源代码在同一界面显示对照,...http://www.codereview.com.cn

    漫谈codereview

    漫谈codereview,关于review的一些基础知识和总结。

    zyh-code-review.rar

    zyh-code-review.rarzyh-code-review.rarzyh-code-review.rarzyh-code-review.rar

    code review tool from google

    标题:Code Review Tool from Google 描述:Code review on the web 根据给定的文件信息,我们可以提炼出关于代码审查(Code Review)及其在谷歌开发流程中的应用的关键知识点。 ### 什么是代码审查? 代码审查...

Global site tag (gtag.js) - Google Analytics