写点什么

如何做好 Code Review?

  • 2019-09-23
  • 本文字数:1481 字

    阅读完需:约 5 分钟

如何做好Code Review?

1. 背景

最近随着交易业务快速扩展,研发组内新项目及新成员越来越多,如何做好 Code Review,把控研发人员开发代码质量很是关键。


对于大部分业务团队,谈到 Code Review 就会面露哀状:


“上线时间倒排,研发工期这么紧,连码代码的时间都不够了,你还要我 CR?”


“上版的需求,这版就变了,代码生命周期太短,烂就烂吧,反正能用就行啦”

2. 抛出问题

下面分几个方面来分析下 Code Review:


  • Code Review 有没有用?

  • Code Review 中的问题如何解决?

  • 如何做好 Code Review?

3. 分析问题

1)Code Review 有没有用?


Code Review 的好处不言而喻。主要让你的代码可以更好的组织搭建,有更高可读性,且更容易维护,同时可以知识共享,相对而言,找 Bug 并不是那么的重要。


总结一句话,Code Review 可以直接影响你的工程能力。


2)Code Review 中的问题如何解决?


Code Review 中的主要问题:


编码质量较差


原因可能是对业务不熟悉,对语言应用技巧不熟悉,也可能对公司、部门编码规范不熟悉等等,有些问题如果没人及时提醒纠正的话,只会造成在错误的道路上越走越远。


自己承担还是指导他人?


Code Review 是一个学习过程,将自己的一些经验指导给新人,从长远来看,是在“复制”你的生产力,一个人能力再强,也不可能包揽所有的任务,团队协作也是研发人员需要注重培养的软素质。


主要 Review 什么?


编码风格,大家约定俗成的规范准则,从新人开始一步步坚持下去;


代码可读性,代码写出来是叫别人可以读懂的,而且是易读的;


全面性,业务实现异常情况考虑不全面的问题,需要老工程师指导,以免造成线上故障;


不良代码或架构,错误的代码实现、功能函数抽象以及文件组织等,都需要尽量保持整个代码库的风格一致。


3)如何做好 Code Review?


Code Review 机制一定是要与团队规模和项目节奏挂钩的。


Code Review 频次如何控制?


研发前期需要技术方案设计评审,日常 Code Review 保证开发过程中代码质量,研发完成后项目 Code Review 是为了呼应前期评审过的技术方案,确认哪些方案变更了,是由于什么原因等等。


如:大型项目,每天 Code Review 一次;小优化需求,merge request 时候 Code Review 一次即可。


Tips:Code Review 一定要尽可能前置,防止测试后改动问题造成影响。


Code Review 时间如何控制?


一次不要检查过多代码,控制在 1 小时以内,一个研究机构调查指出,太多信息或者 60 分钟以后,发现缺陷的能力就会降低。


作者在审核前需要注释源代码


在他人评审之前,自己 Review 一遍实现思路,说不定会有意外收获呢。


使用 Checklist


可能团队内人员会犯同样的错误,一遍遍重复查找费时费力,应该整理核对 Checklist 来缩减经常出现的错误的排查时间,同样 Checklist 也有利于问题统计和跟踪改进结论。


改进问题要及时


争取当天问题当天解决,同时 Code Review 新问题之前,先回顾一下之前遗留问题是否修复,做到 Code Review 行之有效。


培养积极的 Code Review 文化


Code Review 是团队提高代码质量的机会,也是互相学习的过程;建立接受他人评审的潜意识,我的工作产出是需要其他人 Review 的,这种自我激励会自然的要求自己产出更优秀的代码。

4. 写在最后

作为研发工程师,首先要对自己负责的业务和代码负责,这个与医生、教师的岗位职责是一样的。如果开发没有标准,对应该高标准的东西一味妥协,自己的标准一降再降,到最后吃亏的还是自己。


作者介绍:


张欢,平台交易事业部,2017 年 9 月加入贝壳找房,任职 PHP 资深研发工程师,目前负责交易 C 端 &内容库 &指标平台方向研发工作。


本文转载自公众号贝壳产品技术(ID:gh_9afeb423f390)。


原文链接:


https://mp.weixin.qq.com/s/Taze_uNtgZ7jI_qLnxgLDA


2019-09-23 08:002121

评论 1 条评论

发布
用户头像
作者可以聊聊怎么做好cr
2021-11-04 01:30
回复
没有更多了
发现更多内容

SecureCRT for mac(终端SSH仿真工具)

Mac相关知识分享

即时通讯平台-企业IM软件|WorkPlus专注于政企办公的im即时通讯平台

BeeWorks

即时通讯平台-音视频即时通讯平台就选WorkPlus

BeeWorks

IM即时通讯平台哪家好?选择WorkPlus行业领先的解决方案

BeeWorks

WorkPlusIM即时通讯平台:构建生态化的全方位办公解决方案

BeeWorks

小公司该如何做好项目管理工作

爱吃小舅的鱼

项目管理

为什么企业应该选择WorkPlus作为即时通讯平台?

BeeWorks

项目管理中,范围管理和需求管理的区别

易成研发中心

需求管理 需求管理软件

哪些电子合同系统最适合企业使用?7款平台对比分析

爱吃小舅的鱼

电子合同系统

别想消灭证据!U盘直接拔掉怎么恢复丢失的数据?超实用技巧一键恢复

阿拉灯神丁

U盘启动盘 EasyRecovery 数据恢复软件 EasyRecovery16 数据丢失

智能座舱时代,吕布骑上了AI「赤兔马」

白洞计划

AI 智能汽车

产品研发管理和研发项目管理的区别是什么

爱吃小舅的鱼

项目管理 研发管理

Go语言中json序列化的一个小坑,建议多留意一下

左诗右码

JetBrains IntelliJ IDEA 2024.3 (macOS, Linux, Windows) - 领先的 Java 和 Kotlin IDE

sysin

JetBrains IDEA

ShardingSphere Proxy 适配 MySQL addBatch/executeBatch 数组结果实战

端小强

ShardingSphere

2024年最受欢迎的8款HR人事薪酬系统评测

易成研发中心

怎样挑选适合的电子合同系统?6款免费方案推荐

爱吃小舅的鱼

电子合同系统

发现10款有效的项目进度计划系统:全面推荐

爱吃小舅的鱼

项目管理 项目计划 项目计划进度系统 项目计划进度

智能座舱时代,吕布骑上了AI「赤兔马」

脑极体

AI

WorkPlus:提升企业效率的im即时通讯平台解决方案

BeeWorks

鸿蒙NEXT开发案例:二维码的生成与识别

zhongcx

鸿蒙

MacBook Air M3推荐什么硬盘? 为什么新买的硬盘MacBook Air不能读

阿拉灯神丁

MacBook 硬盘 Tuxera NTFS2023 NTFS 磁盘管理器 磁盘工具

DoH与DoT协议:增强DNS安全性的双保险

代码忍者

Pixelmator Pro for Mac(修图软件图像编辑工具)

Mac相关知识分享

什么是真正的低代码?

codebee

低代码

为什么对标准的要求会越来越低

Bruce Talk

系统思考 System Thinking

提升项目执行效率:9款项目进度计划安排系统推荐

爱吃小舅的鱼

项目管理 项目管理软件 项目进度计划 项目进度计划安排系统

PTGui Pro for Mac(全景图拼接制作工具)

Mac相关知识分享

互联网 Java 面试八股文汇总(2024 最新整理,持续更新)

采菊东篱下

java面试

精选9款项目计划进度系统,提升管理效率

爱吃小舅的鱼

项目计划 项目计划管理 项目计划进度系统

如何做好Code Review?_文化 & 方法_张欢_InfoQ精选文章