代码review的作用和实践

1.

在我们小组,一个小版本开发结束之后,我们会抽一两天的时间,大家坐在办公室里轮流进行自己所负责的代码的讲解。

最初做这个的目的,是为了相互评估代码的逻辑,找到漏洞或者可以优化的coding方式,让大家相互借鉴学习,从而更好的coding。

后来我发现,review code的作用还不仅仅是这样。因为code本身是为了解决某个问题,所以code的背后还隐藏着一种解决方案。团队成员的思想碰撞,就不仅仅限于code的层面,而是上升到了解决方案的层面。

什么样的方案更好,有更好的扩展性和易用性?别人又是如何分析问题,抓住重点,形成解决方案的?与他们相比,我的不足在哪里,应该如何提升?

在review的过程中,做个有心人,主动思考一些问题,或可以纠正自己错误的认知,或可以找到新的学习方向,或被人一语点破思维的障碍。略有所得,就如沐春风,会心一笑。

通过review,还可以让大家相互了解各自的工作,从而对整个小组的工作有所了解。让每个人不局限于自己的一亩三分地,而是能一窥全局的面貌。

2.

但是过程并非总是那么美好。因为review包含了一层“审查”的意思,一群人看你的代码,提出各种问题,或许让人有种被针对的感觉。从一开始的略有争执,稍不注意就会演变成面红耳赤的针锋相对,整个会议的气氛也会变得比较尴尬。

所以,每一个人都应该首先摆正看待review的态度。

作为主讲人应该将review看作一次别人帮助自己检验产品的机会,如果别人对自己的代码提出了不同的观点,别马上切换到防御状态,认为别人是在攻击自己。先问自己,他们提到的点自己之前有没有想到?

如果想到了,就解释自己之所以这么选择的原因;如果没有想到,那就不妨想一下,是否确实有不当的地方。如果一时间难以决断,也可以说明会议之后再去研究下。

作为评审,则应该将自己定位为建议者。我们只是对眼前的代码提出自己的建议,接受或者不接受,都由对方决定。如果说服不了对方,那就放弃吧,毕竟如果自己确实提出了中肯的建议,而对方却置之不理,那是别人的损失。

每一个会议都应该有一个人控场,他负责控制时间和主题,把僵硬的气氛缓和下来,或者起到拍板的作用来结束冲突和争论。确保会议按照能按照计划,有序的进行下去。

比如大家在某个点讨论的时间太久,控场人需要提醒大家切换到下一个主题;如果大家思路发散导致偏离主题太远,控场人需要提醒大家回到最初的问题;如果会议上有冲突发生,控场人需要重申这次会议的目的,让大家冷静一下;如果会议上有问题难以决断,控场人需要确定一个结论,或者是另外安排机会再深化讨论,而不是阻塞后面的话题。

3.

在review的过程中,能学到的不仅仅是主讲人,因为整个review的过程,虽然讨论的对象是主讲人的代码,但是沟通却是相互的。review的评审既可以看到优秀的代码然后偷一把师,也可以在沟通的过程中对自己的技术进行印证。

但是,如果评审只是把自己定位在“帮别人发现问题”的角色上,则没有积极主动的心态,也不会有多少收获。

一群人走过一段相同的路,或有所得,或大或小,就看自己是不是一个有心人。

在review的过程中,除了技术、思维上的收获,还可以得到表达和情商上的锻炼。作为主讲人,要清晰明白的把自己的代码讲清楚,还要能很好的回答随时抛过来的问题。能做到从容淡定,见招拆招,那这个人的修养就已经很不错了。

而作为评审,面对陌生的代码,能快速抓住问题要点;面对主讲人强硬的态度,能及时摆正心态,缓解气氛,不被陷入冲突。知道哪些人“不愿意听劝”,哪些人愿意接受不同的观点,从而做到区别对待,确保会议能起到的效果虽不完美,但却已经尽力最大化了。

4.

在review中可能遇到下面的问题:

主讲人认为评审员不理解代码所解决问题的实际场景,所以提出的是虽然理想但是无用的建议。并以评审员不熟悉实际场景的情况,来攻击评审员的观点。

如:这个问题的实际情况是很复杂的,不是你想的那么简单,你知道吗?bla bla...

主讲人若认为评审员提出的观点确实不符合实际场景,应该尝试向大家阐述相关背景。事情是我们在推进,别人不清楚很正常,别人因为不清楚所以没有发言的权力就不正常了。我们应该努力让信息对等,然后再进一步讨论问题。

主讲人是资格老高,舍不下脸被别人“教导”。

茶杯要从茶壶里接水,就一定要摆在比茶壶低的位置。如果一个人无法理解这一点,那就不要期望能从别人那里学到什么。

另外,面子这种东西,有的时候是大事,有的时候真是小事。该当成小事的时候却当成了大事,往往不能成事。

主讲人不是我,评审员少我一个也不少,我还是刷手机吧。

虽然我希望每个人都能从review中有所收获,但前提还是自己要做个有心人。我也确实无法保证每个人都愿意做一个有心人,所以我一般会申明:review的会议大家可以根据自己的实际情况选择参加。

一直开,一直讲,不让人休息

不仅仅是review,所有的会议都可能会有这种问题,一直开啊开,中间没有休息的时间,导致效率越来越低下。最后大家只想尽快结束会议,又如何能认真对待问题本身?

如果会议时间长,不妨设置几个中场休息时间,大家也有讨论的机会。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,784评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,745评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,702评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,229评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,245评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,376评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,798评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,471评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,655评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,485评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,535评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,235评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,793评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,863评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,096评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,654评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,233评论 2 341

推荐阅读更多精彩内容