美文网首页
如何做代码审查

如何做代码审查

作者: rdgbrain | 来源:发表于2020-06-21 21:39 被阅读0次

    作者: 耳朵里有风


    一、代码审查概述

    代码审查 3W

    What: 什么是代码审查

    对计算机源代码系统化审查,常用软件同行评审。

    Why: 为什么做代码审查

    代码审查的好处

    • 提高代码质量

    • 上下文共享

    • 帮助新人融入

    • 帮助开发人员成长

    • 影响力建设

    代码审查的代价

    • 专门的时间和精力: 选择合适的代码审查方式
    • 可能引起团队成员间的不适:沟通技巧,正向反馈

    When: 什么时候审查

    • 原则上有代码变更就可以进行代码审查
    • 集中式(沟通高效,代价大)、异步式(随时进行),通常建议每天预留时间段进行;

    代码审查工具

    Git Gerrit(无代码源,讨论、异步,开源免费) Upsource(讨论、异步,10人付费)

    代码审查流程

    • 范根检查法: 规划- 概述- 准备 - 审查会议 - 调整、修复- 规划/跟进、一般不会使用。
    • 轻量级审查流程
      • 结对编程:编码过程中审查
      • 同步代码审查: 编码完成后
      • 异步代码审查: 比较适合异地或者团队时间不好协调的场景

    二、如何审查

    需要关注什么

    • 编码风格: 驼峰?4空格还是Tab,一行多长,不用拼音命名,unix换行符。 大部分是可以用工具检测(阿里插件,sonarlint),少数再人工check.

    • 命名规范: 命名合理可读?例如当前日期 bad: date, good: currentDate

    • 功能性: 代码是否符合用户意图

      • 输入输出,流程是否正确
      • 边界是否处理妥当
      • 是否有高并发的安全问题
    • 测试覆盖:是否有测试保证

      • 测试时间占开发时间 20-40%
      • 集成度高: UI测试, 低:单元测试,中: 接口测试
      • JACOCO可以用来统计代码覆盖率
    • 复杂度

      • 圈复杂度: V(G)= 判定节点数+1,通常在10以内(代码抽取、反向表达、单一职责、使用多态都可以降低复杂度)
    • 注释

      • 帮助理解代码、正确使用
      • 好的代码不需要注释? 代码可读性媲美自然语言时可不写。
      • 对外公共接口、模块、系统描述需要注释
      • 宁缺毋滥(注释和代码有出入)
    • 设计

      • 提升稳健性、可读性、可维护性、扩展性
      • 不要过度设计(比如:事不过三)
    • 安全性

      • 源码中是否包括凭证
      • 敏感数据是否加密存储
      • 输出是否安全(按需返回)
      • 输入是否安全(如非法值处理)
      • 权限管控是否正确(尽量不使用权限叠加)
      • 安全审查工具: sqlmap owasp(依赖安全检查),WebCruiser
    • 性能

    如何提高审查效率

    • 作者
      • 变更描述要清楚(提交代码描述真实有效)
      • 单次改动不要太大(小步提交)
      • 积极接收反馈
    • 审查者
      • 度量标准(标准统一,不要轻易变化)
      • 审查速度(要及时)
      • 给予良好的反馈(不要只说坏不说好)

    此博客为原创文章,未经本组织允许,不得用于商业用途以及传统媒体。网络媒体或个人转载请注明出处和链接,否则属于侵权行为。

    相关文章

      网友评论

          本文标题:如何做代码审查

          本文链接:https://www.haomeiwen.com/subject/hllzxktx.html