写点什么

不做代码审查又怎样(一)

  • 2020-01-17
  • 本文字数:751 字

    阅读完需:约 2 分钟

不做代码审查又怎样(一)

从一次回顾会议开始

“要不……我们不做……代码审查了……试试?”还记得当有人抛出这个建议时周围同学的表情,那种表情用两个字加两个标点符号就可以形容:“什么?!”


对了,先介绍一下背景,这是项目一次普通的回顾会议,我们正在讨论的是如何让代码审查更有效率和效果。我们做代码审查的方式比较简单直接,就是每日站会后,大家围在一台开发机周围,逐一轮换讲解昨天所有提交的内容,就像下图中的那样。还有,这是一个已经超过了 7 年的比较大型的项目,代码审查是我们从项目开始就坚持的一个实践,所以当有人提议废除它的时候,这在很多同学心里是想都没想过的事情。


代码审查是一个很好的实践,可以帮助团队里的同学了解其他同学在做什么,可以分享项目的上下文,可以分享技术上的一些小魔法,可以发现很多潜在的代码缺陷,可以提高代码质量,还可以有很多很多好处……


但是,在真正的实施过程中,很多情况下并不像想象的那般美好,经常出现例如有些同学由于跟不上其他人讲解的速度(毕竟不是自己写的)或是没有相关的上下文(例如刚加入项目的新成员),或是由于提交没有被很好的切分和组织,导致整个过程都处于游离状态(就像下图中的我……毫无摆拍痕迹),而代码审查的效果也打了折扣,渐渐的变成了一个流程,一个过场, 一个习惯。



图 1. Code Review


于是团队里就有人站了出来,引导大家去发现背后的问题,也就引来了这样一场激烈的讨论。在讨论中,有些同学坚持在说代码审查还是很有用的,有这样那样的好处,需要保持下去;有些同学则非常实际地指出了执行上的各种困难和问题。讨论异常激烈,直到有人小心翼翼地提出了文章开头的那个建议,一片哗然后大家都陷入沉寂:是啊,不做代码审查了,我们会失去或是得到什么呢?


本文转载自健荐公众号。


原文链接:https://mp.weixin.qq.com/s/9l-549sddZ_JFMqdNC8CgQ


2020-01-17 11:23634

评论

发布
暂无评论
发现更多内容

容器or虚拟机?

xcbeyond

Docker 容器 3月日更 专业术语

前端开发:Mac环境的Chrome浏览器设置跨域请求的SameSite解决方法

三掌柜

vue.js 大前端 3月日更

掌握了开源框架还不够,你更需要掌握源代码

华为云开发者联盟

开源 Element 源代码 Vue 3

网易 Duilib:功能全面的开源桌面 UI 开发框架

有道技术团队

开源

像这样操作 Python 列表,能让你的代码更优雅 | pythonic 小技巧

AlwaysBeta

Python

产品训练营 第四周作业

万顷湖天碧

Apache Oozie 深入原理讲解

五分钟学大数据

大数据 28天写作 3月日更 oozie

Rancher 2.5.6发布,支持Kubernetes 1.20

Rancher

诊所数字化:医疗机构常见的系统整理

boshi

医院 医疗 七日更

Wireshark 数据包分析学习笔记 Day13

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

大作业

LouisN

协助市场监督管理局,打造质量基础设施“一站式”服务平台

源中瑞-龙先生

JVM笔记--如果你写JVM,最需要考虑的重要结构是什么?

秦怀杂货店

Java JVM

假期无聊冰河开发了一款国民级游戏!

冰河

Java 游戏

Hamcrest

insight

单元测试 3月日更

哪有简单的满足——自我决定论

Justin

心理学 28天写作 游戏设计

算法攻关-climbing-stairs(O(n))_70

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关

美丽的数学学习笔记(1)

方勇(gopher)

5 分钟部署一个 OIDC 服务并对接 nightingale

冯骐

CAS Nightingale 认证授权 OIDC Apereo

php的一些漏洞梳理

依旧廖凯

28天写作 3月日更

OpenCV萌新福音:易上手的数字识别实践案例

华为云开发者联盟

OpenCV 图像处理 数字 图像预处理 信用卡

短网址服务设计整理

程序员架构进阶

架构 设计实践 28天写作 实操案例 3月日更

存量用户运营企业微信的“用户端小程序”优化方案

vivo互联网技术

小程序 微信 性能优化 大前端 企业微信

看了 GitHub 上的这些面试题项目后,我飘了!

JackTian

GitHub 开源 面试

yum安装Nginx全流程指南

happlyfox

28天写作 3月日更

算命、运气和其他「Day 24」

道伟

28天写作

滚雪球学 Python 之内置 random 模块

梦想橡皮擦

28天写作 3月日更

LeetCode题解:91. 解码方法,动态规划(优化),JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Nginx配置静态文件服务从入门到精通

happlyfox

28天写作 3月日更

为什么MySQL不推荐使用子查询和join

Java小咖秀

MySQL MySQL优化

产品经理训练营 - 大作业

joelhy

产品经理训练营

不做代码审查又怎样(一)_语言 & 开发_王健_InfoQ精选文章