`
willwen
  • 浏览: 26050 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

代码审查

 
阅读更多

      最近准备在项目内推行代码审查,整理最近学到有关代码审查有关知识

从代码审查里能得到什么?

 

      很显然:在代码提交前,用第二只眼睛检查一遍,防止bug混入。这是对其最常见的理解,是对代码审查好处的最广泛认识。但是,这反倒是它最不重要的一点。人们确实在代码审查中找到了bug。可是,这些在代码审查中能发现的绝大部分bug,很显然,都是微不足道的bug,程序的作者花几分钟的时间就能发现它们。真正需要花时间去发现的bug不是在代码审查里能找到的。

        代码审查的最大的功用是纯社会性的。如果你在编程,而且知道将会有同事检查你的代码,你编程态度就完全不一样了。你写出的代码将更加整洁,有更好的注释,更好的程序结构。因为你知道,将会有人查看你的程序。没有代码审查,你知道人们最终还是会看你的程序。但这种事情不是立即发生的事,它不会给你带来同等的紧迫感,它不会给你相同的个人评判的那种感受。

      还有一个非常重要的好处。代码审查能传播知识。在很多的开发团队里,经常每一个人负责一个核心模块,每个人都只关注他自己的那个模块。除非是同事的模块影响了自己的程序,他们从不相互交流。这种情况的后果是,每个模块只有一个人熟悉里面的代码。如果这个人休假或辞职,其他人则束手无策。通过代码审查,至少会有两个人熟悉这些程序(作者和审查者)审查者并不能像程序的作者一样对程序十分了解,但他会熟悉程序的设计和架构,这是极其重要的。

       好处:提高代码质量;知识分享;沟通交流

       当然,没有什么事情能简单的做下来的。在你能正确的进行代码审查前,你需要花时间锻炼学习。我发现人们在代码审查时经常会犯一些错误,导致不少麻烦,尤其在一些缺乏经验的审查者中经常的出现,他们给了人们一个很遭的代码审查的体验,成为了人们接受代码审查制度的一个障碍。

       最重要的一个原则:代码审查用意是在代码提交前找到其中的问题,你要发现是它的正确。在代码审查中最常犯的错误,几乎每个新手都会犯的错误,即审查者根据自己的编程习惯来评判别人的代码。

       对于同一个问题,通常我们能找出十几种方法去解决。对于一种解决方案,我们能有百万种编码方案来实现它。作为一个审查者,你的任务不是来确保被审查的代码都采用的是你的编码风格,因为它不可能跟你写的一样。作为一段代码的审查者的任务是确保由作者自己写出的代码是正确的。一旦这个原则被打破,你最终将会倍感折磨,深受挫折,这可不是我们想要的结果。

      问题在于,这种错误是如此的普遍而易犯。如果你是个程序员,当你遇到一个问题,你能想到一种解决方案,你就把你想到的方案作为标准答案。但事情不是这样的,作为一个好的审查者,你需要明白这个道理。

       代码审查的第二个易犯的毛病是,人们觉得有压力,感觉非要说点什么才好。你知道作者用了大量的时间和精力来实现这些程序。

      不该说点什么吗?

      不,你不需要。

      只说一句“哇,不错呀”,任何时候都不会不合适。如果你总是力图找出一点什么东西来批评,你这样做的结果只会损害自己的威望。当你不厌其烦的找出一些东西来,只是为了说些什么,被审查人就会知道,你说这些话只是为了填补寂静。你的评论将不再被人重视。

      不是在鸡蛋中挑骨头

      第三是速度(半个小时足以)。你不能匆匆忙忙的进行一次代码审查,但你也要能迅速的完成。你的同伴在等你。如果你和你的同事并不想花太多时间进行代码复查,你们很快的完成,那被审查者会觉得很沮丧,这种代码审查带来的只有失望的感觉。就好象是打搅了大家,使大家放下手头的工作来进行审查。事情不该是这样。你并不需要推掉手头上的任何事情来做代码审查。但如果中途耽误了几个小时,你中间还要休息一会,喝杯茶,冲个澡,或谈会儿闲话。当你回到审查现场,你可以继续下去,把事情做完。如果你真是这样,我想没有人愿意在那干等着你。

       实践方式:

  1. 一次评审少于 200–400 行的代码。
  2. 目标为每小时低于 300–500 LOC 的检查速率。
  3. 花足够的时间进行正确缓慢的评审,但是不要超过 60–90 分钟。
  4. 确定代码开发者在评审开始之前就已经注释了源代码。
  5. 为代码评审和获取制度建立可定量化的目标,这样您才能改进流程。
  6. 使用检查列表,因为它可以极大地改进代码开发者和评审者的作品。

       进入条件:

       需求开完好就进入代码审查,开发人员对自己代码及设计方案还很熟悉,复审效率更高,也能提前发现方案的不合理

 

检查表示例:

 


 

  • 大小: 56.4 KB
分享到:
评论

相关推荐

    代码审查表和代码审查实例

    代码审查是软件开发过程中的重要环节,它有助于提高代码质量,发现潜在的错误,以及确保遵循最佳实践。在Java编程中,代码审查同样至关重要,因为Java作为一种广泛应用的面向对象语言,其复杂性和广泛性需要严谨的...

    代码审查规范.doc

    代码审查规范 代码审查是软件开发过程中的一种质量控制机制,它旨在确保软件代码的质量、可维护性和可读性。代码审查规范是指在代码审查过程中需要遵守的一系列规则和标准,以确保代码审查的效率和效果。 代码审查...

    java代码审查表.pdf

    Java代码审查表重要性激活级别检查项结论总计命名重要性规则 一、代码命名规则 Java代码审查表中关于命名规则的重要性激活级别检查项有: * 命名规则是否与所采用的规范保持一致?(重要20) * 变量是否已经在...

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

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

    Java代码审查工具

    Java代码审查工具是提高软件质量和团队协作效率的重要手段。代码评审是一种系统性的源代码检查过程,旨在确保代码符合编程标准,减少错误,提高可维护性和可读性,同时也能促进团队成员之间的知识共享。在这个过程中...

    静态测试-代码审查

    "静态测试-代码审查" 代码审查是静态测试的一种重要方法,它通过对代码的检查和评估来发现和修复错误。代码审查的测试内容包括检查代码与设计的一致性、代码对标准的遵循、代码的逻辑表达的正确性、代码结构的合理...

    基于Gitlab的代码审查流程(Code-Review)方案

    Upsource是JetBrains公司开发的代码审查工具,与IntelliJ IDEA等集成开发环境(IDE)紧密集成,支持对Git和SVN版本控制系统的代码审查。Upsource的主要特点是专注于代码审查,界面友好,与IDE无缝集成,但免费版本...

    java代码审查V1.0.doc

    ### Java代码审查重要知识点 #### 一、概述 **代码审查(Code Review)**是软件开发过程中一个重要的环节,它有助于在代码被正式集成之前发现并修复潜在的问题和缺陷。这一过程通常涉及多名团队成员,旨在提高代码...

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

    ### 代码审查清单详解 #### 一、背景与目的 在软件开发过程中,代码审查是一项至关重要的活动。通过审查代码,不仅可以确保代码的质量,还能帮助团队成员之间共享知识,提高整体的技术水平。本文将根据“Coding ...

    java代码审查.pdf

    在详细说明【标题】及【描述】中的知识点之前,需要明确这两个字段提供的是文件名和文件内容的描述,它们分别指出了文档的主题是关于Java代码审查的PDF文档,以及文档内容涉及到了Java编程语言中的代码审查技巧、bug...

    【软件测试】: 单元测试:桌面检查、走查方式、代码审查.doc

    软件测试中单元测试的桌面检查、走查方式和代码审查 单元测试是软件测试的重要部分之一,它关注于软件的每个单元的正确性和可靠性。单元测试可以帮助开发人员和测试人员发现软件中的错误和缺陷,从而提高软件的质量...

    一个简单的C#代码审查表

    C#代码审查表 C#代码审查表是对C#代码的检查和评估,以确保代码的质量、可靠性和可维护性。以下是C#代码审查表的重要检查项: 命名检查: * 是否采用 Pascal Casing + Camel Casing 规范? * 布尔型属性名称前缀...

    轻量级代码审查工具 JavaViwer1.0说明书

    JavaViewer 1.0 是一款专为Java源代码审查设计的轻量级工具,旨在提高代码审查效率并降低审查成本。这款工具集成了多种功能,为开发者提供了全面、高效的代码检查环境。 一、软件特点 JavaViewer 1.0 的主要特点...

    如何执行Java代码审查

    Java 代码审查清单 一、代码整洁清单项分类 1. 使用有意义的名称:变量、函数和类名应该能够表达实际意图,使用描述性名称,避免使用单个字符或缩写。 2. 函数只做一件事:函数应该只有一个明确的任务,避免函数过...

    代码审查工具fortify安全问题解决方法

    代码审查工具Fortify安全问题解决方法 代码审查工具Fortify安全问题解决方法 Fortify是一款代码审查工具,旨在帮助开发者检测和修复代码中的安全问题。在本文中,我们将介绍Fortify扫描出的高中低危问题解决方法,...

    Go-goreporter一个能够静态分析单元测试代码审查和生成代码质量报告的Golang工具

    Go-goreporter在代码审查方面提供了辅助,它能检查代码风格是否符合Go语言的最佳实践,比如遵循Go的命名约定、避免使用全局变量等,有助于提升代码的可读性和一致性。 4. **代码质量报告**: 工具生成的代码质量...

    代码审查工具源码合集

    代码审查是软件开发过程中的重要环节,它有助于发现并修复潜在的编程错误、安全漏洞以及不符合编码规范的地方。本合集包含了几款知名的代码安全检查工具的源码,分别是CppCheck、cqual、TscanCode和flawfinder,这些...

    drek一种静态代码分析工具可用于执行以安全性为重点的代码审查

    `drek`是一个静态代码分析工具,专门设计用于执行以安全性为重点的代码审查。它能够帮助开发者在代码执行前发现潜在的安全漏洞、编程错误和不良实践,从而提高代码质量并降低安全风险。 **一、静态代码分析的概述**...

    C++C代码审查表 文件结构

    在C++和C编程中,代码审查是一项至关重要的工作,它能确保代码的质量、可读性和维护性。本文档提供了一份详细的代码审查表,涵盖了文件结构、程序版式、命名规则、表达式与基本语句、常量、函数设计以及内存管理等多...

Global site tag (gtag.js) - Google Analytics