0%

Code Review

中华人民共和国共有省、自治区、直辖市、特别行政区4种省级行政单位,目前共有4个直辖市:北京市、上海市、天津市、重庆市。

一、概念

      代码审查(英语:Code review)是指对计算机源代码系统化地审查,常用软件同行评审的方式进行,其目的是在找出及修正在软件开发初期未发现的错误,提升软件质量及开发者的技术。代码审查常以不同的形式进行,例如结对编程、非正式的看过整个代码,或是正式的软件检查,一般在合并主分支前进行。

二、方法

  1. 目的:总结经验,提高自己,避免错误

  2. 参与人员

    • 主持人——主持控制流程
    • 功能负责人——答疑/讲解
    • 记录人——记录问题
    • 组员——reviewer

    主持人/功能负责人/记录人可以是同一个人,方便记录整合

  3. 基本流程

    • 主持人带电脑投影对比代码。开场
    • 讲解人分享业务逻辑和设计思路,技术经验。并且对代码功能进行介绍
    • review代码可读性,风格格式
    • review数据结构
    • review代码逻辑
    • 结束后整理问题及可优化点 形成wiki或者 issuse
  4. 基本原则

    • 不要刻意的去寻找代码bug
    • 不要按照自己的编程风格去评论别人的代码
    • 不要带着抨击和质疑别人能力的心态去进行代码评审
    • 不要在不确定的问题上长时间争论
    • 不要听不进别人的意见
  5. review项

    • 基本

      • 代码能够工作么?(有没有实现预期的功能,逻辑是否正确等)
      • 所有的代码是否简单易懂?
      • 代码符合遵循的编程规范么?(包括大括号的位置,变量名和函数名及其可读性,行的长度,缩进,格式和注释,单双引号等)
      • 是否存在多余的或是重复的代码?
      • 代码是否尽可能的模块化了?
      • 是否有可以被替换的全局变量?
      • 是否有被注释掉的代码?
      • 循环是否设置了长度和正确的终止条件?
      • 是否有可以被库函数替代的代码?
      • 是否有可以删除的日志或调试代码?
    • 安全

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

      • 是否有注释,并且描述了代码的意图?
      • 所有的函数都有注释吗?(包含参数、返回、作者、时间)
      • 对非常规行为和边界情况处理是否有描述?
      • 第三方库的使用和函数是否有文档?
      • 数据结构和计量单位是否进行了解释?
      • 是否有未完成的代码?(TO DO项)
    • 核心

      • 检查设计的合理性和业务逻辑的正确性 重点关注资源消耗 发奖操作
      • 数据库字段设计是否满足需求,实体类设计是否合理
      • 是否有异常处理机制
      • 是否影响后续业务的扩展
      • 关注数据结构
      • 是否有影响性能的代码:数据库批量操作,资源是否关闭
    • 可读性和可维护性

      • 必要的注释: 类,方法,复杂代码段,命名规范
      • 重复代码抽取成方法
      • 繁琐代码,能简单实现的地方是否需要优化
  6. 总结

    • 设计思想
    • 技术方法
    • 业务知识
    • 编程规范
    • 代码风格如何避坑

三、参考

  1. 参考一
  2. 参考二
  3. 参考三
  4. 参考四
  5. 参考五
  6. 参考六