Code Review 的首要目的是改善和保证代码质量,预防 bug。此外还有益于制定团队代码规范,形成团队技术氛围,加深技术团队成员沟通,老带新互助成长等等。

有些团队里 Code Review 处于开发流程的边缘位置,有些团队 Code Review 处于代码编写到部署的必经部分。对于我们来说,Code Review 是代码编写到部署的必经部分,所有代码都必须经过 Review 才能 merge。

单纯如我

Code Review 的几点实用性建议:

  1. 对事不对人。大家是同事,在一个团队工作和气很重要。不要在 Code Review 中说“你写的什么垃圾东西这种话”,你可以说“这个变量名不好理解,咱们换成巴拉巴拉是不是更好”。

2. 每个 Review 至少给一条正面评价。Code Review 本意是改善代码质量,增强团队成员之间的沟通,但是我一提交代码就有人说我写的垃圾,这很打击自信心啊,也不利于团队成员和平相处。代码有问题,指出问题是必须的,要实事求是,但是有的时候也需要给队友一点鼓励,例如简单的 或者“赞一个”我都很开心了。

3. 保证发布的代码和评审意见的可读性。大家都是程序员,你提交代码的时候,在符合团队风格的同时,把代码弄的好看点,如果你明确自己这个代码哪个地方不足,Highlight 出来让大家给意见。如果你是来 Review 代码的,把意见写的通顺点,评论有条理一些。对反引号 (`) 嵌入代码或三个反引号 (```) 写代码块,这样看的舒服得多,效率也高。

4. 用工具进行基础问题的自动化检查。用 Tab 还是空格,用两个空格还是四个空格,函数后面怎么换行等基础问题检查,可以使用 eslint 和Rubocop 等类似的工具进行,团队成员应该把更多精力放在代码规范,代码性能优化等地方。

5. 全员参加 Code Review,并设定各部分负责人。扩大 Code Review 参与面,参与不是说一定去审核别人的代码,可以是代码被审核,也可以是看别人审核意见,这都是学习的过程。并且每部分设定负责人,该负责人对这部分代码质量负责,负责人需要是资深工程师。全员参与 Code Review 可以让团队成员更快的成长,新人在看大佬 Review 代码的过程就能学到很多。

6. 每个代码 PR 内容一定要少。Code Review 效果和质量与 PR 代码量成反比,你一下提交这么多代码,我今天还下不下班了? 我女朋友你帮我陪?每次 PR 代码量小一些,看起来速度快,又不至于失去耐心,这样才能达到 Code Review 的效果,所以要经常进行 Code Review,但是每个 PR 代码量要少。我建议要少于 300 行/PR。

7. 在写新代码之前,先 Review 掉需要评审的代码。你让我去 Review 一周前的代码?我还得把思维和项目进度切换到一周前?大家肯定不愿意,所以要形成规定,写新代码之前先把旧的 Review 掉,提交 PR 的时候也保证代码量小,这样 Review 起来不需要大块时间,改起来也快。不能因为 Code Review 大幅耽误项目进度,进度是全团队的事,不是某个人的事。

8. 如果你有更好的方案,尽管提出来。在 Code Review 中经常会发现写的不好的地方,如果你有更好的方法,欢迎提出来!首先能改进这个 PR 的代码,其次能体现你的能力,团队应该定期对这种提出好的解决方案的同事进行奖励。

9. 不要在 review 中讨论需求,review 就是 review。不要在 Code Review 里搞别的,有需要就另安排时间进行,要明确 Code Review 是完善代码,不是需求和功能讨论,始终要以代码质量为中心。

Review代码审核建议相关推荐

  1. Gerrit 代码审核服务器的工作流和原理

    2019独角兽企业重金招聘Python工程师标准>>> Gerrit 代码审核服务器的工作流和原理 谷歌 Android 开源项目在 Git 的使用上有两个重要的创新,一个是为多版本 ...

  2. 讲讲我和Spring创始级程序员共同review代码的故事

    RocketMQ-Spring毕业了. 作为Apache RocketMQ的子项目,经过6个多月的孵化,RocketMQ-Spring发布了第一个Release版本v2.0.1,通过使用Spring ...

  3. Gerrit代码审核服务器搭建全过程

    Gerrit代码审核服务器搭建全过程 转载请标明出处:http://blog.csdn.net/ganshuyu/article/details/8978614 环境:Ubuntu12.xx 1.建立 ...

  4. 小程序代码审核一二事

    背景 最近自己写了一个本来打算只给自己用的小程序,因为害怕代码审核会出现一些状况.最后还是有惊无险的上架了.这里来说一下一些坑.帮助有需求的人通过审核. tips1.对个人主体开放的小程序服务 < ...

  5. 荐一份 Android 代码规范建议文档

    之前推送过:Android 代码规范大全,可以一起学习. 开源几年了,被很多人夸过,你的代码写得比较规范,甚至有人质疑自己代码的写法,但是迟迟没有出一个代码规范,说来惭愧,只是因为我早几年写的代码还不 ...

  6. Java编程中写出好代码的建议

    最近在做应用的性能优化,在review代码的过程中积累了一些规则和经验.做到这些规则的目的很简单,就是写出"优美"的代码来. 1.注释尽可能全面 对于方法的注释应该包含详细的入参和 ...

  7. Java编程中写出好代码的建议(转发)

    最近在做应用的性能优化,在review代码的过程中积累了一些规则和经验.做到这些规则的目的很简单,就是写出"优美"的代码来. 1.注释尽可能全面 对于方法的注释应该包含详细的入参和 ...

  8. 开源社区Review代码步骤

    以Ranger项目为例,说明开源社区Review代码详细步骤. 1.寻找合适的issue进行review 首先自己需要是某个开源项目的committer, 要有合入代码的权限. 2.review代码 ...

  9. 极简权限认证必须掌握【代码+原理+建议收藏】

    这个极简权限认证必须掌握,代码不过百,但是很关键 小白最近没有来问学委问题,不过前几天,有朋友问到如何进行访问控制,资源控制的,学委特地写了一篇. 这其实就是权限认证,理解并掌握其核心思想很重要,而且 ...

最新文章

  1. [转]微服务(Microservice)那点事
  2. Apple Mach-O Linker Error
  3. Proteus仿真STM32F103R6微控制器的GPIO(按键控制LED开关)
  4. Writing for Myself.part2
  5. 通过index索引定位
  6. springboot与springcloud的关系(转载)
  7. HttpHandler
  8. java8 lambda map排序_Android兼容Java 8语法特性的原理分析
  9. 如果人生只剩最后一天,你想在这天干什么?
  10. 《Lua游戏AI开发指南》一第2章 创建并移动智能体
  11. strong,weak, retain, assign的区别@property的参数
  12. WCF实例上下文以及会话学习
  13. utils工具 常见函数
  14. mpa和pis_压力单位MPa/psi/bar之间的换算?
  15. 自动化测试的流程是什么
  16. php 控制usb打印,usb口打印机的指令打印和驱动打印
  17. python iter( )函数
  18. SIMT与SIMD的区别?
  19. 2023年美国大学生数学建模竞赛增加春季赛!!!
  20. 每日一题---小凯的疑惑

热门文章

  1. spark面试题总结
  2. 在天源迪科TYDIC办理离职。。
  3. (拯救选择困难症)随机选择今天中午吃啥
  4. c语言赋值一个字母,c语言赋值后面有逗号 c语言赋值与逗号表达式问题
  5. ubuntu wechat
  6. 互联网摸鱼日报(2022-09-30)
  7. 数据结构入门----集合的交、并、差
  8. 列表用法:格式化商品列表、商品添加到购物车
  9. [玩转C语言]---函数的递归
  10. 【VSCode】代码高亮的调整