简单可行的code review规则

前言

曾经有一段垃圾代码放在个人面前,我没有拒绝,等我真正开始接手的时候我才后悔莫及,程序员最痛苦的事莫过于此!java

每当接手别人的代码,都有一种想从新写一遍的感受,等到别人再来接手你的代码时,一样的感受。。。为何会有这种现象存在?由于没有Code Reviewgit

 

 

 

衡量代码质量的惟一标准就是每分钟骂出“WTF” 的频率。(出自Martin(Bob大叔)《代码整洁之道》)当你的代码在作 Code Review 时,审查者要是愤怒地吼道:程序员

“What the fuck, is this shit?” “Dude, What the fuck!” 等言辞激烈的词语时,那说明你写的代码是 Bad Code,若是审查者只是漫不经心的吐出几个:编程

“What the fuck?” 那说明你写的是 Good Code。安全

 

价值

 


 

 

你说个人code须要review?架构

一些没采起过code review模式的资深工程师可能会有一些抵触情绪,但放眼业界,code reveiw的好处是毋庸置疑的。app

Google内部人士的一段话。模块化

The biggest thing that makes Google’s code so good is simple: Code Review.函数

At Google, no code, for any product, for any project, gets checked in until it gets a positive review.性能

 

一、保证项目质量、提升代码可读性

二、加速我的成长、突出团队价值

三、知识传播与共享

四、凝聚团队共识

五、不断提升团队的下限

but,良好的程序设计老是优于code review,作好设计才能减小review工做量。

内容

Code Review的内容:编程素养、业务逻辑、架构设计、单元测试、性能、安全

规则

master项目收回提交权限,由QA把控,develop到qa分支merge须要qa review确认。

feature分支往develop分支提pr必须遵循的游戏规则:

  1. 每次提交review代码修改行数不得超过1000行,一小时内review完(先试行,最终目标400行,Cisco开发团队研究显示,进行一次Code Review不要超过400行代码(LOC, Line of Code)。大脑一次只能有效处理这么多信息,超过400 行找到缺陷的能力减弱。)

     

     

     

  2. 至少每一个周期(两周一个开发周期)提一次review,周五早上互相喊一下,最晚提交时间周五下午2点前,周五下午的时间用来修改review代码

  3. 须要保证单元测试覆盖到,功能点要拆分足够细

  4. checkout feature分支后能编译运行正常

  5. 工做日能够上午11点前提pr,须要组内指派资深工程师两名, 至少一人review经过

  6. 提交pr两天内须要处理完毕,打回或经过

小步迭代,理论上每周自测完成就能够提交pr merge到develop分支

 

Checklist

常规项

  • 代码可以工做么?它有没有实现预期的功能,逻辑是否正确等。

  • 全部的代码是否简单易懂?

  • 代码符合你所遵循的编程规范么?这一般包括大括号的位置,变量名和函数名,行的长度,缩进,格式和注释。

  • 是否存在多余的或是重复的代码?

  • 代码是否尽量的模块化了?

  • 是否有能够被替换的全局变量?

  • 是否有被注释掉的代码?

  • 循环是否设置了长度和正确的终止条件?

  • 是否有能够被库函数替代的代码?

  • 是否有能够删除的日志或调试代码?

 

代码行数统计:查看feature分支提交了多少行代码? (exclude)掉idl目录 (java thrift项目)

git log --author="shenguanpu" --since='2019-04-22' --pretty=tformat: --numstat ":(exclude)idl" | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'

added lines: 17, removed lines: 15, total lines: 2

 

参考文献:

https://mp.weixin.qq.com/s/A7XlAliQL__RcpK4AzuacQ 从Code Review 谈如何作技术(陈皓)

 

https://mp.weixin.qq.com/s/jXT1-bC7dfvzhRmh47H69g 如何写出优雅的代码

 

https://mp.weixin.qq.com/s/n1B0wLicwQByYslz6hYwnw 你真的会Code Review吗?

 

https://mp.weixin.qq.com/s/YCw7OP3RKF1EJb064IHEXg code review 有用吗?

 

https://mp.weixin.qq.com/s/nWntcljELd5g98b8RFTjXg code review 那些事儿

 

https://mp.weixin.qq.com/s/XvSuLKADV17-uF8mZmYXnw 程序员必备的代码审查(Code Review)清单

 

https://mp.weixin.qq.com/s/6SoJP9BMRNyLMJjwSkctUw 如何高效的Code Review

 

https://mp.weixin.qq.com/s/sXwuMb8lQzijWTthnaeinw 论code review代码审查

 

https://mp.weixin.qq.com/s/YOhKriAtUz2VViJtJRhbBw 享用腾讯免费早餐同样天然的作Code Review,他们如何作的?

相关文章
相关标签/搜索