• 如何从零开始做代码评审


    以参考我的博客   如何用eclipse做代码的code review

    最近和一个朋友讨论如何做公司代码的review,刚好我前段时间在看“腾讯开放平台”中的一个安全漏洞的check list(地址:http://wiki.open.qq.com/wiki/安全漏洞checklist),于是就极力推荐这种模式。简单来说,基本分如下几个步骤:

    1.制作 code review需要的checklist。
    check list简单说来就是一个检查清单列表。要做code review,我们第一步是需要清楚我们review到底要做哪些工作,然后我们将他们一条一条的列在纸上,每一项是一个检查项。(我们这里只简单的列了个清单,实际操作要复杂的多)。

     
    NO检查点
    1

    基本

    1.代码能够成功构建,并执行

    2.代码规范是否在严格执行(命名、缩进、函数长度限制、格式、注释)

    3.项目规范是否在严格执行(目录命名规范、等)

    4.是否存在重复的代码(复制粘贴或者重复开发,有库函数的地方调用库函数)

    5.是否有需要模块化的代码

    6.代码逻辑方面(未关闭的流,未结束的循环)

    7.日志是否被正确的使用

    8.其他(这只是demo,大家脑补吧)

    2 安全
    1.是否所有的输入项都进行了检查(长度、类型、格式、范围、防止脚本注入)
    2.用户拼接参数,是否会有漏洞
    3.防攻击的代码是否被正确的使用(xss,csrf,sql注入,每种语言都有自己的成熟的解决方案)
       
     
    3 数据库
    1.事物是否正确使用(隔离级别)
    2.是否有正确的做sql优化
    3.其他
     
    4 其他
    1.接口命名规范(比如遵循restful标准)
    2.合理的使用注释中 TODO   REVIEW功能
    3.复杂逻辑的代码是否有注释
    4.性能方面
    5.线程安全
    6.其他
     

    2.组织内部讨论

    与大家分享并讨论我们的 codereview清单是获取大家支持的最有效的方式。
    checklist上的每一项都是将来要执行的工作,在内部讨论时,必须要明确我们列表中的哪些项目是切实可行,符合现在公司的现状的,哪些有些过度为难大家(延期执行还是放弃),还有哪些是被遗漏掉的。
    要确保 check list中的每一个检查项项都切实可行,否则规范就会失去可行性。
    此外,我们在内部讨论中还应该指定评审的负责人(指定某个人还是轮岗),评审时间(每周?每月?),评审的覆盖率(抽查?全检查?)
     
    3.以“sprint回顾会议”为基础,监督codereview执行
    没有监督就没有落实,上班这几年见过太多的半途而废的制度。
    但是管理是有成本的,一般的中小团队还无法单独的建立自己的管理和监督的部门,那我们设立的制度如何保障执行呢?
    在敏捷开发中有一个会议叫做“  

    Sprint回顾会议

     ”,用来回顾总结我们的工作。 将code review的执行情况做为回顾会议中的一项,可以确保我们的正在正确的执行我们的codereview的工作。当前对code review的建设性意见,也应该在这里提出来。
     
    4.持续优化
    没有什么是一成不变的,code review也不例外。
    我们实行了一段时间的  codereview,会有很多的心得体会。
    1.check list中哪些检查项是不合理的,或者我们从未出现的问题,是否要删除(有些问题很少出现但是很重,就不能删了)。
    2.我们遗漏了哪些很重要的检查项?
    3.引入新的技术或者是我们团队素质的提高,是否要加入更多的检查项?
     
    去吧,优化我们的清单,保持为我们的团队量身打造清单。
  • 相关阅读:
    Oracle 10G R2 RAC 日常管理
    Oracle RMAN 的 show,list,crosscheck,delete命令整理
    drop table 报错ora 全分析
    Oracle RAC 日常基本维护命令
    修改RAC VIP IP
    ASM 管理命令和操作笔记
    用示例说明BitMap索引的效率要优于BTree索引
    用示例说明全文索引的性能优势
    通过append hint来插入数据,演示它和普通插入数据的性能比较。
    用示例说明BTree索引性能优于BitMap索引
  • 原文地址:https://www.cnblogs.com/yzycoder/p/6873601.html
Copyright © 2020-2023  润新知