精华内容
下载资源
问答
  • 代码review

    2016-10-16 20:12:15
    在开发过程中,交叉code review常常是代码质量的一种检测方式,网上搜集整理,其中有如下关注点: 常规点: 代码是否能正常运行?业务功能和逻辑是否正确等。代码是否简单易懂?代码是否符合编程规范?一般包括语言...

    在开发过程中,交叉code review常常是代码质量的一种检测方式,网上搜集整理,其中有如下关注点:

    常规点:

    • 代码是否能正常运行?业务功能和逻辑是否正确等。
    • 代码是否简单易懂?
    • 代码是否符合编程规范?一般包括语言规范,列如变量名和函数名的命名方式、缩进、格式和注释等;企业规范,列如项目直接交互方式,项目架构方式等。
    • 是否存在多余的或是重复的代码?
    • 代码是否尽可能的模块化了?
    • 是否有可以被替换的全局变量?
    • 是否有被注释掉的代码?
    • 循环是否设置了长度和正确的终止条件?
    • 是否有可以被库函数替代的代码?
    • 是否有可以删除的日志或调试代码?

    安全:

    • 所有的数据输入是否都进行了检查(检测正确的类型,长度,格式和范围)并且进行了编码?
    • 在哪里使用了第三方工具,返回的错误是否被捕获?
    • 输出的值是否进行了检查并且编码?
    • 无效的参数值是否能够处理?

    文档:

    • 是否有注释,并且描述了代码的意图?
    • 所有的函数都有注释吗?(至少关键函数要有)
    • 对非常规行为和边界情况处理是否有描述?
    • 第三方库的使用和函数是否有文档?
    • 数据结构和计量单位是否进行了解释?
    • 是否有未完成的代码?如果是的话,是不是应该移除,或者用合适的标记进行标记比如‘TODO’?

    测试:

    • 代码是否可以测试?比如,不要添加太多的或是隐藏的依赖关系,不能够初始化对象,测试框架可以使用方法等。
    • 是否存在测试,它们是否可以被理解?比如,至少达到你满意的代码覆盖(code coverage)。
    • 单元测试是否真正的测试了代码是否可以完成预期的功能?
    • 是否检查了数组的“越界“错误?
    • 是否有可以被已经存在的API所替代的测试代码?

    以上是网上推荐的,在实际过程中最好也考虑下如下点:

    日志:

    • 错误或异常日志是否完整记录了?
    • 关键接口中,对于输入参数和返回值是否做了相关日记?
    • 日志的划分是否清晰?一般推荐error,warn,info这样的级别?

    相关后门:

    考虑到实际运行过程中,因为情况复杂,以及权限上的控制,所以一般针对某些重点或易出错的功能和代码,做些后门,方便在错误出现时,快速的代码定位和解决。

    数据库:

    • sql是否准确、
    • 相关索引是否添加了
    • left/right/innner join是否允许正确?
    • 性能是否考虑?
    • 列表查询是否添加了相关限制?
    • sql是否冗余?是否可以合并?
    展开全文
  • 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.

    展开全文
  • 注释的一个坏处是,你不能保证注释代码是同步的。当你由于某些原因改了代码,而没有修改注释,这时候注释是误导人的,还不如没有。 注释会带来代码的噪音。遍布代码里的注释,让你无法抓住代码要点,而是要费...

    自描述

    命名恰当规范,看名字就知道意思。包括包、类、方法、变量等等,而不是靠注释去理解。当你需要注释才能描述清楚你想干嘛,请思考一下,能否从命名就说清楚?除非是在不行,否则不要依赖注释。

    注释的一个坏处是,你不能保证注释和代码是同步的。当你由于某些原因改了代码,而没有修改注释,这时候注释是误导人的,还不如没有。

    注释会带来代码的噪音。遍布代码里的注释,让你无法抓住代码要点,而是要费劲去阅读注释。

    简单

    简单容易理解的代码就是短的代码。有有限的行数(方法低于10行是个不错的标准,低于7行是个更好的标准,再低可能不容易做到),较少的缩进层次(两层以内,最多不高于3层)。

    过长的方法可能是因为你违反了单一职责原则。试着对方法进行重构,对方法里的代码进行分层。每个方法只干一件事儿,减少代码的行数。

    过大的类也是一种复杂。试着重构,将类的职责分离出来,保持类的单一职责。对于复杂逻辑,尝试用常用设计模式,如类工厂等方法将一些逻辑分布到其他类中。

    容易修改

    当你把相同原因相同时间变化的放到一起,不同原因不同时间变化的分开,代码就容易修改。从纵向上,把UI、业务逻辑、数据库访问等分开,高层的业务逻辑和底层的UI数据库解耦;从横向上,不同的UseCase分开为不同的模块。这样代码会更容易修改。

    面向对象赋予我们的利器:多态。进而实现依赖反转。从而让各个层次可以很方便用抽象解耦,一个层内部的修改,不会影响到其他层。

    Open-Close原则,面向扩展开放,面向修改关闭。在增加新功能的时候,不需要或者极少需要修改原来代码。这样才能避免引入新的Bug。

    容易测试

    依赖简单的、职责单一的代码就容易测试。轻易Mock少数接口(甚至不需要),就可以完成对业务逻辑的单元测试。当你发现你的代码很难测试,极有可能是你代码做了太多的事儿,或者没有好好隐藏内部实现,导致调用者非常复杂。

    如果你的对外依赖不容易通过Mock替代进行测试,说明你的代码违反了里氏替换原则。重新设计其他依赖,用接口进行隔离。

    高效的

    采用恰当的方法,是系统能够高效运行。比如不必要的打包解包、无谓的循环、频繁的锁竞争。当然对效率的优化首先要考虑代码前面几个原则,除非非常必要,不要以牺牲可读性、可测试等特性为代价。

    转载于:https://www.cnblogs.com/bobdeng/p/8553350.html

    展开全文
  • 最近公司开始代码review,使我对代码注释有了更胜层次的理解。 注释首先要告诉维护的人这段代码是谁写的。 函数头注释应该描述函数调用的前置条件和后置条件。 注释不是描述代码做了什么而是描述为什么这么做。好的...

    最近公司开始代码review,使我对代码注释有了更深层次的理解。

    1. 注释首先要告诉维护的人这段代码是谁写的。
    2. 函数头注释应该描述函数调用的前置条件和后置条件。
    3. 注释不是描述代码做了什么而是描述为什么这么做。好的代码注释应该告诉后来人维护的思路。

    作者在写代码时已经考虑了后续版本的需求哪里可能会变化,变化后只要怎么修改一下哪里的代码就可以支持。这样的代码注释看起来很舒心,作者是有思想的,也是负责任的。

    当然,对于业务逻辑实在太复杂的部分。看代码不能一下就看出个所以然来,通过一段文字说明,把关键点点出来,还是很有好处的。

    1. 注释描述的内容应该和代码是一致的

    修改代码时未同步修改注释,注释成了误导。错误的注释比没有注释更糟糕。

    1. 取一个有意义的函数名,让它自注释。

    开发过程中经常看到这样的情况:某个功能要处理A,B,C三件事,拆分成三个函数,函数名就是DoA, DoB, DoC。只能说太随意了,还可以再斟酌一下,更具体一点。

    1. 取一个好的变量名,让人不易误用。
    展开全文
  • 代码Review发现问题

    2014-05-10 11:51:00
    FrmMain.cs中存在问题 1. int i=0 设定为了全局常量且未在类顶部,出现问题时不好查找 ...3.变量名及控件名等意义不明确又缺少注释,如顶部定义的全局变量 long length = 0; long loading = 0; pri...
  • 用Hudson进行代码review的时候会有如下提示: Missing a Javadoc comment 是因为你没增加类或者方法的注释  
  • RevHelper-MSR2017:复制程序包 ... 使用1,116条评论注释的比较研究表明,有用的评论与更改后的代码共享更多词汇,包含诸如相关代码元素之类的显着项目,并且其评论者通常更有经验。 使用1,482条评论评论
  • 代码规范一(注释

    2016-01-08 10:16:00
    研发团队中的人大多刚工作一年,每次review代码都是一件头痛得事情,代码注释也很乱,所以我决定,让他们们是用注释模板,和格式化模板,来增强代码的统一性和可读性。本篇文章介绍如何设置 Code Template,具体...
  • 1. "// TODO Auto-generated catch block" 有其特殊意义,就是说这段代码需要在某些方面修改,而在eclipse中try-block模块自动添加功能中,这行注释会附带着跑出来, 这就需要编程人员自己手动把它删除掉。...
  • CodeReview是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们可以对代码、测试过程和注释进行检查。CodeReview主要用来在软件工程过程中改进代码质量,通过CodeReview可以达到如下目的目的:(1)...
  • Code Review 代码审查

    2013-07-15 10:05:40
    Code Review是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们可以对代码、测试过程和注释进行检查。 Code Review主要用来在软件工程过程中改进代码质量,通过Code Review可以达到如下目的目的: ...
  • VS 编码规范---- 代码注释设置

    千次阅读 2019-04-07 14:17:00
    在Code Review过程中,良好的编码风格和合理的注释会有很大的帮助。 下面介绍一点我的编辑器中关于代码风格的配置和注释的配置. 1.关于类注释和方法注释: 类注释可以通过以下手段进行注释:  ...
  • Code Review 代码规范

    2020-06-15 22:14:57
    编码常规项 代码是否内存泄漏,是否UI成红色,是否性能低下,是否会形成crash 各种异常逻辑是否处理 代码能够工作么?它有没有实现预期的功能,逻辑是否... 是否有被注释掉的代码? 循环是否设置了长度和正确的终
  • 代码审查Code Review

    2016-09-29 13:32:00
    代码审查清单 常规项 代码能够工作么?它有没有实现预期的功能,逻辑是否正确等。 所有的代码是否简单易懂?...是否有被注释掉的代码? 循环是否设置了长度和正确的终止条件? 是否有可以被库函数...
  • 可以对代码、测试过程和注释进行检查。 Code Review主要用来在软件工程过程中改进代码质量,通过Code Review可以达到 如下目的: 在项目早期就能够发现代码中的bug,将bug扼杀在摇篮中。 帮助初级开发人员学习高级...
  • Code Review是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们可以对代码、测试过程和注释进行检查。 Code Review主要用来在软件工程过程中改进代码质量,通过Code Review可以达到如下目的目的: ...
  • 代码审查清单 常规项 代码能够工作么?它有没有实现预期的功能,逻辑是否正确等。 所有的代码是否简单易懂?...是否有被注释掉的代码? 循环是否设置了长度和正确的终止条件? 是否有可以被库函数...
  • 代码开发中,或者codereview中,我们经常能看到各种问题,如何能全面考虑、减少依赖考虑因素。为了这个目的,把工作中的经验整理如下: 代码规范: 核心功能代码注释是否完整、逻辑是否清晰。 自定义的sql是否放...
  • 一种方法是确保您始终对代码进行注释,而不对开发人员进行注释。您不必总是遵循这种做法,但是在说出可能令人不快或有争议的内容时,一定要使用它。例如: 坏:“为什么从并发中没有任何好处,为什么要在这里使用...
  • 代码审查清单常规项代码能够工作么?它有没有实现预期的功能,逻辑是否正确等。 所有的代码是否简单易懂?...是否有被注释掉的代码? 循环是否设置了长度和正确的终止条件? 是否有可以被库函数替代的代码
  • 注释有时候也可以用来给一段代码声明额外的信息。这些声明的格式以单个单词打头并紧跟一个冒号。可以使用的声明如下。 TODO: 说明代码还未完成。应当包含下一步要做的事情。 HACK: 表明代码实现走了一个捷径。应当...
  • 如何编写代码评论注释代码审查中处理推回 另请参阅《CL作者指南》,该指南为正在审查其CL的开发人员提供了详细的指导。 CL: Change List. 参考 https://google.github.io/eng-practices/revi
  • 常规项 代码能够工作么?它有没有实现预期的功能,逻辑是否... 是否有被注释掉的代码? 循环是否设置了长度和正确的终止条件? 是否有可以被库函数替代的代码? 是否有可以删除的日志或调试代码? 大致过程流
  • Code Review是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们可以对代码、测试过程和注释进行检查。 1.关于Code Review 1.1 Code Review的目的 Code Review是一种用来确认方案设计和代码...
  • Code Review 是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们可以对代码,测试过程和注释进行检查。Code Review 主要用来在软件工程过程中改进代码质量,查找系统缺陷,保证软件总体质量和提高...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 376
精华内容 150
关键字:

代码review注释