七种方法,让代码审查不撕B

七种方法,让代码审查不撕B

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

越来越多的软件公司把codereviews作为一种很好地实践,应用在日常的软件开发中。然而一个常被大家忽略的问题是,怎样组织codereviews、怎样进行codereviews,同样可能影响工程师之间的关系。

我认为在一个和谐的code review氛围中,避免抓狂是十分必要的。不可否认,讨论交流时直言不讳的感觉很好(在相当长的一段时间里,我也理所当然的认为人与人的交流就应该这样)。但是在讨论交流时锋芒毕露、直言不讳也会导致付出一些代价。团队之间沟通交流的良好氛围会因为这样拉仇恨而戛然而止。即使是在和谐友善的氛围中,也可能导致友谊的小船说翻就翻,甚至还会影响项目后续的开发效率。

下面这七个方法是我作为一个code reviews的老司机,经多年实践经验总结而来。

#1 保持谦虚低调

哪怕你是你们团队里技术最好的、最优秀的(尤其是你是货真价实的优秀,陈独秀都没你优秀的时候),你也要努力保持虚心的姿态。没有人喜欢自高自大的天才。比如,当你遇到无法解答的问题时,不要掩饰,如实的告诉大家,你也不是万能的:

“我也不太清楚,我们一起再研究一下吧!”

#2 善于听取意见

直接指出别人代码里显而易见的错误(或者是你明显觉得存在问题的代码),不如语气平和地请求他给你讲一下他的思路,比如:

“我不太明白这些代码的功能,你能给我解释一下吗?”

#3 工作不分彼此

在团队里,你应该努力创造一种和谐的氛围,让大伙都认同我们是一个团队。有一个很好的方法来培养这种认同感,就是给大家灌输“我们是一个集体”这样的思想。避免这样的言语出现:“这是张三的”、“这是李四的”、“这是王二麻子的”。取而代之的,多用下面的说法:

“我认为我们可以一起……”

#4不要夸夸其谈

这一点我感到惭愧,我喜欢在人们面前夸夸其谈。当人们已经对你所讲的内容有所了解了,你还在滔滔不绝,这就比较尴尬了。

然而,我在code reviews时已经尽量克制不要长篇大论了。

别人很容易误解你的意思,并且可能会觉得你很烦人。记着,在团队里,你首先要考虑的应该是你和同事之间的融洽关系。

避免出现这样的话:“总是(always)”、“绝不(never)”、“没完没了(endlessly)”,“没毛病(nothing)”

#5 学会问问题,不要提要求

尽量不要说“我们把那个变量命名为‘userName’,因为你之前的命名我们大家看不明白”,你应该这样说:

“你觉得把这个变量命名为‘userName’怎么样呢?当前这个名称容易混淆,因为我在另一个js代码里用到了这个名称。”

#6 避免说脏话

这一点听起来很好做,毕竟,没有谁存心想诋毁同事。然而,有的时候你很自然的就想骂别人“SB”、“傻×”。

有一个很好的方法来避免这种情况:告诉自己每一个人都有自己的优点。大家在工作的时候,都是在想着努力把工作干好。可能在你眼中某些人看起来很傻×,只是因为他没有注意到某个问题,或者是忽略了问题的某个方面。

同样的,换位思考一下,有的时候你也会被别人看做是傻×一样的存在,比如别人已经很好地解决了一个问题,你还在拿你愚蠢的方案跟人家喋喋不休(然而,我是在经历了很多之后,才悟到这一点)。

#7 适时地当面交流(或语音交流)

如果别人提交的comments里面包含了很多“我不明白”、“我们用另一个替代方案吧”这样的说法,那么这个时候最好的办法就是线下交流(译者注:好多公司都是使用协作软件线上进行code reviews的)。

在处理上面这些问题的时候,使用当面交流或者电话交流的方法,能节省不少时间。当面讨论之后,记得把讨论的成果提交给大家共享。

把上面的七点付出实践吧!

我希望上面这几点技巧能够帮助你的团队愉快地一起进行code reviews。你在和同事进行code reviews时有什么好的方法呢?通过Twitter或者email和我交流吧!

英文原文:http://dbader.org/blog/avoiding-aggravation-in-code-reviews?utm_source=mybridge&utm_medium=web&utm_campaign=read_more



译者:bird