zoukankan      html  css  js  c++  java
  • Code review

    Code review 目的

    1,尽早地发现bug;
    这里并不是指一些简单的bug,而是一些可能是因为经验上不足而出现的潜在的bug。因此code review人员一定是要比较有经验的人担当。
    2,帮助初级开发人员学习高级开发人员的经验,以达到知识共享;
    这点也很重要,使得小组成员不断地进步,这样才能更有效地工作。
    3,保证项目组成员有良好的沟通;
    code review人员起着小组沟通桥梁的作用,而不是去熟悉每个单元代码,而去调试、编译等工作,那样还不如自己去写整个系统。
    4,项目或产品的代码更容易维护;
    这里就是检查代码规范、代码注释等。使得代码尽量统一化,最理想的效果是看不出是哪个具体人写的,而是哪个Team写的。
    5,避免开发人员犯一些很常见,很普通的错误

    好的代码应该:

    1. 容易编写,可读性高,易于修改扩展。

    2. 代码干净整洁,并表述准确。

    3. 代码有价值,并注重质量。

    Code Review检查的内容

    1. 测试文档检查
      1. 文档描述是否清晰,满足需求
      2. 测试point是否完整,测试是否cover整个feature.
      3. 测试用例是否详细,比如步骤,测试环境,预先需求。
      4. 自动化测试,手动测试等等。
    2. 类的检查
      1. 类是否过大。
      2. 是否可以用设计模式实现。
      3. 是否违反单一原则。
      4. 比较高级的面向对象设计原则SOLID (单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)
    3. 方法检查
      1. 方法代码是否过长。个人感觉30行内比较好。
      2. 方法参数是否过多。
      3. 方法中是否包含复杂的表达式。
      4. 避免多处返回。
      5. 方法是否被循环重复调用。
    4. 代码风格检查
      1. 代码中的格式,符号,风格等是否一致。
      2. 使用一些统一的格式化技巧(缩进,空白),增加代码的清晰度。
      3. 命名规范。
      4. 避免不必要的Region。
    5. 常量变量检查
      1. 所有的变量都正确定义和使用。易于修改。
      2. 是否没有使用。
      3. 取值范围是否准确。
      4. 使用范围是否正确。
    6. 代码逻辑检查
      1. 死循环。
      2. 是否检查过循环是的第一个值、中间的某值和最后一个值。
      3. 是否正确的代码做正确的事情。
      4. 运行时错误(边界溢出,被零除,值越界,堆栈溢出)unchecked/checked.
      5. 参数个数是否正确
      6. 算法是否优化写法。委托,匿名委托,Lambda, Func/Action delegate.
    7. 性能检查
      1. 是否会造成性能上的问题,比如斐波那契数列用递实现。
    8. 注释检查
      1. 是否清楚描述上方法的功能。参数的意思。
      2. 注释是否足够,是否过少。
      3. 注释是否过时,更新代码后是否同时更新注释。
      4. Check in的时候完整的注释 做了什么修改
    9. 检查完必后提供相应的solution.
  • 相关阅读:
    从JAVA看C#中volatile和synchronized关键字的作用
    SSAS动态添加分区 (转载)
    IIS7的集成模式下如何让自定义的HttpModule不处理静态文件(.html .css .js .jpeg等)请求
    SqlServer Analysis Service的事实维度关系
    SqlServer分区表概述(转载)
    SQL2005中的事务与锁定(九)-(1)- 转载
    SQL2005中的事务与锁定(八)- 转载
    SQL2005中的事务与锁定(七)
    LINUX下编译ffmpeg-x264出现的错误及解决转
    从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题 (转)
  • 原文地址:https://www.cnblogs.com/binyao/p/3105940.html
Copyright © 2011-2022 走看看