Code review 的愛恨情仇

做 code review 的觀念做 programmer 都是懂得: 即使你已經完成九成九的程式碼,一定有些地方是沒注意到的,或是邏輯沒完全 cover,或是流程走不到的盲點;這時候要有一個客觀公正的資深人員,將這些地方點出來,我們的程式才會趨於完美,無可挑剔。

聽起來這是一件重要而且必要的事情,應該每個以寫程式為工作的人都會欣然接受。可是,在現實生活中,所看到過的 dev (其實包含我在內),對 code review 不是能躲則躲,要不就是盡量拖延,不到最後一刻不會去面對,好像小孩就是會對紅蘿蔔有著莫名的討厭感覺一樣。

有的 dev 會說,用程式做 code check 就好啦。這真是自欺欺人,明明知道機器只能做最粗淺的檢查,我還沒看過哪個厲害的編譯器能夠將程式中的邏輯錯誤揪出來。

另外有些 dev 說,甚麼時代了,何必做面對面的 code review,remote 看就好啦,真是沒效率! 可是就我的觀察,找出關鍵問題的 code review,都是要一來一往,雙方了解程式碼的時空背景及來龍去脈,才能對症下藥。單方面的檢查並不會省多少時間,可能反而更耗時。

依我之見,會有這樣的情形,多半肇因於「NIH 症候群」(大家可以去搜搜關鍵字)。說白話,就是「武無第二,文無第一 」。

不管是資深還是資淺,只要是人,都會高估自己產出的價值。越聰明的天才,這種情況越明顯。所以有的時候會越 review 越火爆,若不是 「你是誰啊,居然對我的 code 有意見?」,就是 「你也太遜了,居然把 code 寫成這樣?」。不用多,只要碰到一兩個這樣的 case,我就不信還會對 code review 會有好感。

我的心得: 寫出好程式,也是要跟所有的成功人士一樣,EQ 要高,要有耐心。若是我是 review 人的那一方,點到就好,得饒人處且饒人;若我是被 review 的那一方,唉,不就是一份工作嘛!

results matching ""

    No results matching ""