精华内容
下载资源
问答
  • 代码Review那些事

    万次阅读 2016-04-27 20:18:19
    代码Review那些事

    本篇推文是以前同事做分享的时候的ppt,这里我整理出来分享给大家

    什么是代码Review?

    代码review是指在软件开发过程中,通过对源代码进行系统性检查来确认代码实现的质量保证机制

    为什么不做代码Review?

    • ​业务需求大,工作时间紧张
    • 项目小,协作的人少,没必要

    为什么要做代码Review?

    • 提高代码质量,提升自身水平
    • 及早发现潜在缺陷与BUG,降低事故成本
    • 促进团队内部知识共享,提高团队整体水平
    • 保证项目组人员的良好沟通
    • 避免开发人员犯一些很常见,很普通的错误

    总而言之目的是查找系统缺陷,保证软件总体质量和提高开发者自身水平,使项目代码更加容易维护。

    代码Review的好处

    1. 在代码提交之前如果有很多双眼睛盯着看可以发现bug,这是代码审查最广为人知的好处。(人们的确可以在代码审查中发现bug,但是这些bug大部分都是显而易见的小bug,开发者分分钟可以发现,而那些真正需要花时间发现的bug通常是在代码审查中发现的)

    2. 代码审查最大的好处是纯社会性的。(如果你编程的时候知道你的同事将要看你的代码,你的编程方式会不一样,你的代码会写的更整洁,注释更加清楚,组织得更好。因为你知道其他人会看你的代码,他们的意见是你需要关注的。如果没有审查,你虽然知道人们最后会去看你的代码,但是那样不会给你一种紧迫感,也不会给你同样的个人评判的感觉。)

    3. 还有一个更大的好处就是代码审查可以传播知识。(在很多开发小组里,每个人都负责某一个核心组件,专注于自己的这一块,只要其他同事的模块不会破坏自己的代码就不会去关注,这种模式导致一个模块只有一个人熟悉对应的代码,如果一个人请教或者离职,其他人对他负责的模块将一无所知。如果采用代码审查,那么至少有两个人熟悉代码-作者和审查者。审查者知道的代码不如作者多,但是他们都熟悉代码的设计和结构,这意义重大)

    Code Review的前提

    1. 重视代码review
      (Code Review人员是否理解了Code Review的概念和Code Review将做什么如果做Code Review的人员不能理解Code Review对项目成败和代码质量的重要程度,他们的做法可能就会是应付了事。)

    2. 代码是否已经正确的build,build的目的使得代码已 经不存在基本语法错误
      (我们总不希望高级开发人员或是主管将时间浪费在检查连编译都通不过的代码上吧。 )

    3. 代码执行时功能是否正确
      (Code Review人员也不负责检查代码的功能是否正确,也就是说,需要复查的代码必须由开发人员或质量人员负责该代码的功能的正确性。 )

    4. 开发人员是否对代码做了单元测试
      (这一点也是为了保证Code Review前一些语法和功能问题已经得到解决,Code Review人员可以将精力集中在代码的质量上。 )

    Code Review需要注意什么?

    1. 完整性检查(Completeness)

      • 代码是否完全实现了设计文档中提出的功能需求
      • 代码是否已按照设计文档进行了集成和Debug
      • 代码是否已创建了需要的数据库,包括正确的初始化数据
      • 代码中是否存在任何没有定义或没有引用到的变量、常数或数据类型
    2. 一致性检查(Consistency)

      • 代码的逻辑是否符合设计文档
      • 代码中使用的格式、符号、结构等风格是否保持一致
    3. 正确性检查(Correctness)

      • 所有的变量都被正确定义和使用
      • 所有的注释都是准确的
      • 所有的程序调用都使用了正确的参数个数
    4. 可修改性检查(Modifiability)

      • 代码涉及到的常量是否易于修改(如使用配置、定义为类常量、使用专门的常量类等)
      • 代码是否只有一个出口和一个入口(严重的异常处理除外)
    5. 健壮性检查(Robustness)

    6. 可理解性检查(Understandability)

      • 注释是否足够清晰的描述每个子程序
      • 是否使用到不明确或不必要的复杂代码,它们是否被清楚的注释
      • 使用一些统一的格式化技巧(如缩进、空白等)用来增强代码的清晰度
      • 是否在定义命名规则时采用了便于记忆,反映类型等方法
      • 每个变量都定义了合法的取值范围
      • 代码中的算法是否符合开发文档中描述的数学模型
    7. 可验证性检查(Verifiability)

      • 代码中的实现技术是否便于测试

    Code Review经验检查项

    1、 编码规范方面检查项
    2、面向对象设计方面检查项
    - 类设计和抽象是否合适
    - 是否符合面向接口编程的思想
    - 是否采用合适的设计模式

    3、性能方面检查项
    - 对hashtable,vector等集合类数据结构的选择和设置是否合适
    - 有无滥用String对象的现象
    - 是否采用通用的线程池、对象池模块等cache技术以提高性能
    - I/O方面是否使用了合适的类或采用良好的方法以提高性能(如减少序列化,使用buffer类封装流等)
    - 同步方法的使用是否得当,是否过度使用

    4、数据库处理方面
    - 数据库资源是否正常关闭和释放
    - 数据库访问模块是否正确封装,便于管理和提高性能
    - 是否采用合适的事务隔离级别
    - 资源泄漏处理方面检查项 cursor

    5、通讯方面检查项
    - socket通讯是否存在长期阻塞问题

    6、重复代码
    7、其他
    - 日志是否正常输出和控制
    - 配置信息如何获得,是否有硬编码

    怎么更有效的做Code Review

    1. 一次评审量要低于 200–400 行代码缺陷密度 就是每 1000 行代码之中所发现的错误(bug)数
      这里写图片描述

    2. 每小时低于 300–500 LOC 检查率的目标
      这里写图片描述

    3. 花足够的时间进行适当缓慢的评审,但是不要超过 60-90 分钟
      但反过来说,评审代码所花的时间不得低于五分钟,就算代码只有一行也是如此。通常来说,单行的代码也会影响到整个的系统,所以花上五分钟时间去检查更改可能造成的结果是值得的

    4. 确定在评审开始之前代码开发者已经注释源代码了
      这里写图片描述

    5. 使用检查表,因为它能极大地影响代码开发者和评审者的结果
      另外一个有用的概念就是 个人检查表 。每个人一般都会犯 15-20 个错误(bug)。如果您注意到了一些典型的错误(bug),那么您就可以开发自己的个人检查表

    6. 确认缺陷得到了修复

    最后,让Code Review成为一种习惯

    The biggest thing that makes Google’s code so good is simple:code review

    欢迎关注我的公众号:wwjblog

    展开全文
  • JAVA代码Review

    千次阅读 2018-03-28 11:08:45
    什么是代码Review? 代码review是指在软件开发过程中,通过对源代码进行系统性检查来确认代码实现的质量保证机制 为什么不做代码Review? ​业务需求大,工作时间紧张 项目小,协作的人少,没必要 为什么要做...

     

     

    什么是代码Review?

    代码review是指在软件开发过程中,通过对源代码进行系统性检查来确认代码实现的质量保证机制

    为什么不做代码Review?

    • ​业务需求大,工作时间紧张
    • 项目小,协作的人少,没必要

    为什么要做代码Review?

    • 提高代码质量,提升自身水平
    • 及早发现潜在缺陷与BUG,降低事故成本
    • 促进团队内部知识共享,提高团队整体水平
    • 保证项目组人员的良好沟通
    • 避免开发人员犯一些很常见,很普通的错误

    总而言之目的是查找系统缺陷,保证软件总体质量和提高开发者自身水平,使项目代码更加容易维护。

    代码Review的好处

    1. 在代码提交之前如果有很多双眼睛盯着看可以发现bug,这是代码审查最广为人知的好处。(人们的确可以在代码审查中发现bug,但是这些bug大部分都是显而易见的小bug,开发者分分钟可以发现,而那些真正需要花时间发现的bug通常是在代码审查中发现的)

    2. 代码审查最大的好处是纯社会性的。(如果你编程的时候知道你的同事将要看你的代码,你的编程方式会不一样,你的代码会写的更整洁,注释更加清楚,组织得更好。因为你知道其他人会看你的代码,他们的意见是你需要关注的。如果没有审查,你虽然知道人们最后会去看你的代码,但是那样不会给你一种紧迫感,也不会给你同样的个人评判的感觉。)

    3. 还有一个更大的好处就是代码审查可以传播知识。(在很多开发小组里,每个人都负责某一个核心组件,专注于自己的这一块,只要其他同事的模块不会破坏自己的代码就不会去关注,这种模式导致一个模块只有一个人熟悉对应的代码,如果一个人请教或者离职,其他人对他负责的模块将一无所知。如果采用代码审查,那么至少有两个人熟悉代码-作者和审查者。审查者知道的代码不如作者多,但是他们都熟悉代码的设计和结构,这意义重大)

    Code Review的前提

    1. 重视代码review 
      (Code Review人员是否理解了Code Review的概念和Code Review将做什么如果做Code Review的人员不能理解Code Review对项目成败和代码质量的重要程度,他们的做法可能就会是应付了事。)

    2. 代码是否已经正确的build,build的目的使得代码已 经不存在基本语法错误 
      (我们总不希望高级开发人员或是主管将时间浪费在检查连编译都通不过的代码上吧。 )

    3. 代码执行时功能是否正确 
      (Code Review人员也不负责检查代码的功能是否正确,也就是说,需要复查的代码必须由开发人员或质量人员负责该代码的功能的正确性。 )

    4. 开发人员是否对代码做了单元测试 
      (这一点也是为了保证Code Review前一些语法和功能问题已经得到解决,Code Review人员可以将精力集中在代码的质量上。 )

    Code Review需要注意什么?

    1. 完整性检查(Completeness)

      • 代码是否完全实现了设计文档中提出的功能需求
      • 代码是否已按照设计文档进行了集成和Debug
      • 代码是否已创建了需要的数据库,包括正确的初始化数据
      • 代码中是否存在任何没有定义或没有引用到的变量、常数或数据类型
    2. 一致性检查(Consistency)

      • 代码的逻辑是否符合设计文档
      • 代码中使用的格式、符号、结构等风格是否保持一致
    3. 正确性检查(Correctness)

      • 所有的变量都被正确定义和使用
      • 所有的注释都是准确的
      • 所有的程序调用都使用了正确的参数个数
    4. 可修改性检查(Modifiability)

      • 代码涉及到的常量是否易于修改(如使用配置、定义为类常量、使用专门的常量类等)
      • 代码是否只有一个出口和一个入口(严重的异常处理除外)
    5. 健壮性检查(Robustness)

    6. 可理解性检查(Understandability)

      • 注释是否足够清晰的描述每个子程序
      • 是否使用到不明确或不必要的复杂代码,它们是否被清楚的注释
      • 使用一些统一的格式化技巧(如缩进、空白等)用来增强代码的清晰度
      • 是否在定义命名规则时采用了便于记忆,反映类型等方法
      • 每个变量都定义了合法的取值范围
      • 代码中的算法是否符合开发文档中描述的数学模型
    7. 可验证性检查(Verifiability)

      • 代码中的实现技术是否便于测试

    Code Review经验检查项

    1、 编码规范方面检查项 
    2、面向对象设计方面检查项 
    - 类设计和抽象是否合适 
    - 是否符合面向接口编程的思想 
    - 是否采用合适的设计模式

    3、性能方面检查项 
    - 对hashtable,vector等集合类数据结构的选择和设置是否合适 
    - 有无滥用String对象的现象 
    - 是否采用通用的线程池、对象池模块等cache技术以提高性能 
    - I/O方面是否使用了合适的类或采用良好的方法以提高性能(如减少序列化,使用buffer类封装流等) 
    - 同步方法的使用是否得当,是否过度使用

    4、数据库处理方面 
    - 数据库资源是否正常关闭和释放 
    - 数据库访问模块是否正确封装,便于管理和提高性能 
    - 是否采用合适的事务隔离级别 
    - 资源泄漏处理方面检查项 cursor

    5、通讯方面检查项 
    - socket通讯是否存在长期阻塞问题

    6、重复代码 
    7、其他 
    - 日志是否正常输出和控制 
    - 配置信息如何获得,是否有硬编码

    怎么更有效的做Code Review

    1. 一次评审量要低于 200–400 行代码缺陷密度 就是每 1000 行代码之中所发现的错误(bug)数 
      这里写图片描述

    2. 每小时低于 300–500 LOC 检查率的目标 
      这里写图片描述

    3. 花足够的时间进行适当缓慢的评审,但是不要超过 60-90 分钟 
      但反过来说,评审代码所花的时间不得低于五分钟,就算代码只有一行也是如此。通常来说,单行的代码也会影响到整个的系统,所以花上五分钟时间去检查更改可能造成的结果是值得的

    4. 确定在评审开始之前代码开发者已经注释源代码了 
      这里写图片描述

    5. 使用检查表,因为它能极大地影响代码开发者和评审者的结果 
      另外一个有用的概念就是 个人检查表 。每个人一般都会犯 15-20 个错误(bug)。如果您注意到了一些典型的错误(bug),那么您就可以开发自己的个人检查表

    6. 确认缺陷得到了修复

    展开全文
  • 代码review

    2015-04-22 17:10:34
    对于代码review个人也有些小小的看法: 1.首先我觉得我们所有开发人员要弄明白 现在Code Review 的目的 ,凡事不弄明白目的,无法做好完成一件事情,个人觉得有以下一些目的: a)可以在项目早期就能够发现代码...
    

    对于代码review个人也有些小小的看法:
    1.首先我觉得我们所有开发人员要弄明白 现在Code Review 的目的 ,凡事不弄明白目的,无法做好完成一件事情,个人觉得有以下一些目的:
    a)可以在项目早期就能够发现代码中的BUG ,提测后可以尽快的释放开发资源;
    b)同时可以达到知识共享 ,避免我们所有开发人员犯一些很常见,很普通低级的错误 ;
    c)保证项目组人员的良好沟通 ,项目的代码更容易维护
    大家还有希望补充上

    2.Code Review 很容易变得没有意义或是流于形式,进入 Code Review 个人觉得以下几点肯定得弄明确:
    a) 我们是否理解了 Code Review 的概念和 Code Review 将做什么,这点都不明白,做法可能就会是应付了事。
    b) 我们的代码是否已经正确的 build , build 的目的使得代码已经不存在基本语法错误 ,我们总不希望review人员浪费在检查连编译都通不过的代码上吧。
    c) 我们 Review 人员是否理解了代码 ,做复查的人员需要对该代码有一个基本的了解,其本功能是什么,具体的业务是怎样的,这样才能采取针对性的检查

    3 .具体检查点
    1 完整性检查
    代码是否完全实现了设计文档中提出的功能需求
    代码中是否存在任何没有定义或没有引用到的变量、常数或数据类型

    2一致性检查
    代码的逻辑是否符合设计文档
    代码中使用的格式、符号、结构等风格是否保持一致
    3正确性检查
    代码是否符合制定的标准
    所有的变量都被正确定义和使用
    所有的注释都是准确的
    4 可修改性检查
           代码涉及到的常量是否易于修改 ( 如使用配置、定义为类常量、使用专门的常量类等 )

    5可预测性检查
           代码是否具有定义良好的语法和语义
           代码是否无意中陷入了死循环
           代码是否是否避免了无穷递归

    6健壮性检查
           代码是否采取措施避免运行时错误(什么空指针异常等,有很多是程序里面处理了,但打印日志时没有判断,不知道大家有没有犯过这样的错误哟)

    7可理解性检查
           注释是否足够清晰的描述每个子程序 ,对于没用的代码注释是否删除
           是否使用到不明确或不必要的复杂代码,它们是否被清楚的注释
           使用一些统一的格式化技巧(如缩进、空白等)用来增强代码的清晰度
           是否在定义命名规则时采用了便于记忆,反映类型等方法
          循环嵌套是否太长太深?
    8可验证性检查
           代码中的实现技术是否便于测试
    具体的杨帅同学也整理的很多很多,希望我们讨论会上所有人员能达成一个共识,慢慢去完善!

    最后抛出一个问题,希望大家抛砖
    Review中,我们发现开发人员代码的一些非逻辑问题(辟如:不符合面象接口编程的思想等,只是个举例,嘿嘿),不修改也行,因为逻辑是OK的,如果修改的话可能又要花上一些时间,此时项目的进度方面将无法保证,该如何去做?

    展开全文
  • code-review-emoji-guide:一个表情符号图例,可帮助传达意图并在代码审查注释中添加含义
  • 代码REVIEW指南

    2013-12-06 10:21:04
    代码Review 是被鼓励在开过过程全阶段执行,在一些关键点代码Review是被正式要求执行。本指南中规范代码审查活动,并指导审查人员按照该指南执行该活动。   二、过程 1、新增代码  ACTION1:开分人员提交代码...


    一、概要

    代码Review 是被鼓励在开过过程全阶段执行,在一些关键点代码Review是被正式要求执行。本指南中规范代码审查活动,并指导审查人员按照该指南执行该活动。

     

    二、过程

    1、新增代码

             ACTION1:开分人员提交代码列表(Email)

    ·        并对代码review状态列设置成未Review标志

    ·        在列表上边注释中指定review人员(例如David: pls review)

    ·        在SVN注释中,提供标准信息:SVN diffs,branch info ,and explanation

              ACTION2:审查人员收到代码审查Email

    ·        如果代码通过审查,添加注释ok

    ·        如果代码没有通过审查,需要田间注释说明问题(如需要可开bug跟踪)

    2、BUG导致修改代码

              ACTION1:开分人员提交代码审查申请,在当前bug下(Jira),触发Email

    ·        并对代码review状态列设置成未Review标志

    ·        在注释中指定review人员(例如David: pls review)

    ·        在SVN注释中,提供标准信息:SVN diffs,branch info ,and explanation

             ACTION2:审查人员收到代码审查Email

    ·        如果代码通过审查,在jira中添加注释ok

    ·        如果代码没有通过审查,需要在jira中添加注释说明问题(如需要可开bug跟踪)

    3、小需求导致修改代码(jira)

             ACTION1:开分人员提交代码审查申请,在当前需求管理下(Jira),触发Email

    ·        并对代码review状态列设置成未Review标志

    ·        在注释中指定review人员(例如David: pls review)

    ·        在SVN注释中,提供标准信息:SVN diffs,branch info ,and explanation

            ACTION2:审查人员收到代码审查Email

    ·        如果代码通过审查,在jira中添加注释ok

    ·        如果代码没有通过审查,需要在jira中添加注释说明问题(如需要可开bug跟踪)

     

    三、代码标准

       * C++:  C&C++编程规范

       * Java: Java编程规范

       * SQL:   SQL 编写规范

     

    四、代码检查列表

    功能正确性:代码是否满足他要实现的功能需求

    代码复用性:是否已经有其他的代码实现了这部分功能,部分或者全部?

    代码样式/可读性:是否提供了正确的注释、代码缩进,并遵循了编码规范?

    效率:是否有更好的方法来执行这个功能

    内存分配:是否有可能内存泄露

    无效内存操作:是否有些用例导致无效的内存访问,包括可能的缓存溢出的可能

    边界情况:是否所有可能的边界都进行了覆盖

    线程安全:在多线程环境是否有竞争条件和其他不安全的数据存在

    版本注释:确认不敢修改信息、新的log错误代码和配置变更信息加到了版本注释中

     

    五、模板

    CODE REVIEW:

       Functionality:

       Code Re-use:

       Style:

       Efficiency:

       Memory Allocation:

       Invalid Memory Ops:

       Boundary Cases:

       Thread Safety:

       Release Notes:

       Logging:

    每一项需要添加标识“OK” 或者”NG” ,如果是“NG”,需要提供注释进行解释。

    Example1:

    CODE REVIEW:

       Functionality:  OK

       Code Re-use: OK

       Style: OK

       Efficiency: OK

       Memory Allocation: OK

       Invalid Memory Ops: OK

       Boundary Cases: OK

       Thread Safety: OK

       Release Notes: OK

       Logging: OK

    Example 2:

    CODE REVIEW:

       Functionality:  OK

       Code Re-use: OK

       Style: OK

       Efficiency: OK

       Memory Allocation: OK

       Invalid Memory Ops: OK

       Boundary Cases: NG.  Does not properly handle the case where i is0.

       Thread Safety: OK

       Release Notes: NG.  New configuration parameter not listed.

      Logging: OK.

    展开全文
  • 代码review那些事

    2018-02-28 11:52:24
    代码review是指在软件开发过程中,通过对源代码进行系统性检查来确认代码实现的质量保证机制为什么不做代码Review?​业务需求大,工作时间紧张项目小,协作的人少,没必要为什么要做代码Review?提高代码质量,提升...
  • 预测试 0、明确任务需求和实现效果(需要产品和UI协同) 1、单元测试、集成测试通过 2、todo : C2C 测试通过(验证组件) ...6、代码兼容性:是否兼容老代码和老数据结构(如果不能兼容,至少界面不报
  • 什么是代码Review?代码review是指在软件开发过程中,通过对源代码进行系统性检查来确认代码实现的质量保证机制为什么不做代码Review?​业务需求大,工作时间紧张项目小,协作的人少,没必要为什么要做代码Review?...
  • 代码Review

    千次阅读 2012-12-03 11:23:19
    1.首先我觉得我们所有开发人员要弄明白 现在Code Review 的目的 ,凡事不弄明白目的,无法做好完成一件事情,个人觉得有以下一些目的: a)可以在项目早期就能够发现代码中的BUG ,提测后可以尽快的释放开发资源...
  • 代码review注意事项

    2017-03-01 11:02:15
    极限编程里提到结对编程和代码Review,凡是稍微懂编程的人看了都会赞成。这也体现了代码Review的重要性和必要性。但是,在实际的执行过程中,代码Review往往很难得到很好的执行。主要原因可能包含以下几点: (1)...
  • 熟知代码review那些事

    2021-01-06 13:54:13
    什么是代码Review? 代码review是指在软件开发过程中,通过对源代码进行系统性检查来确认代码实现的质量保证机制,即是code review(CR) 为什么不做代码Review? ​业务需求大,工作时间紧张 项目小,协作的人少...
  • 如何有效地进行代码 Review

    万次阅读 2020-10-26 18:37:42
    为什么要做代码 Review 为什么要代码 Review,相信每个人心中都有比较一致的答案,Google 搜索一下也能找到一大堆的文章。这里简单总结几点: 1)提高代码质量 这是代码 Review 的初衷,也是代码 Review 最直接的...
  • 代码review总结

    万次阅读 2017-11-28 09:26:41
    Code Review应该是软件工程最最有价值的一个活动,之前,本站发表过《简单实用的Code Review工具》,那些工具主要是用来帮助更有效地进行这个活动,这里的这篇文章,我们主要想和大家分享一下Code Review代码审查的...
  • Gerrit代码Review入门实战 代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但在实际项目执行过程中,却因为种种原因被Delay甚至是忽略。在实践中,给大家推荐一款免费、开放源代码的代码审查...
  • 代码review理解

    千次阅读 2010-06-17 09:32:00
    极限编程里提到结对编程和代码Review,凡是稍微懂编程的人看了都会赞成。这也体现了代码Review的重要性和必要性。但是,在实际的执行过程中,代码Review往往很难得到很好的执行。主要原因可能包含以下几点: (1)对...
  • 注释的一个坏处是,你不能保证注释代码是同步的。当你由于某些原因改了代码,而没有修改注释,这时候注释是误导人的,还不如没有。 注释会带来代码的噪音。遍布代码里的注释,让你无法抓住代码要点,而是要费...
  • 关于如何优雅的做好代码注释

    热门讨论 2021-06-10 20:17:22
    在一次研发沟通会上,大家关于是否需要代码注释做了一番争执(讨论)。 主要内容简述如下: A:我提议项目应该有个注释,我们有些程序员几乎从不注释代码,谁都知道没注释代码是没法阅读的。 B:我觉得注释...
  • Gerrit代码Review入门

    2017-10-22 17:05:22
    代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但在实际项目执行过程中,却因为种种原因被Delay甚至是忽略。在实践中,给大家推荐一款免费、开放源代码代码审查软件Gerrit。 1. Why Code ...
  • 代码注释怎么写

    千次阅读 2017-05-15 00:20:33
    注释怎么写注释的作用是什么?我认为注释最终作用无非就两个。 1.和伪代码一样的作用,为接下来要实现的功能写出一个指导性的算法思路。只是没有伪代码详细。但是也指出了完成此功能的大体算法思路。 2.给看代码...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,132
精华内容 6,452
关键字:

代码review注释