原文地址:http://sophiebits.com/2018/12/25/why-review-code.html
作者:Sophie Alpert
發(fā)布時間:2018年12月25日
最近一個朋友問我為什么代碼審查很有價值丘薛?至少大多數(shù)硅谷科技公司在每一次變化時都做代碼審查腻暮,以獲得至少兩雙眼睛去監(jiān)控代碼變化讥珍。在我以前的工作,我們在一段時間(很短)選擇了做代碼審查毁菱,然后一個來自 Google 的雇員加入了我們并且激勵我們審查我們所有的代碼米死。這是一個很好的建議。
如果您做的正確贮庞,代碼審查不會感到繁重峦筒。您和您的審查者不是對手;您們一起工作來構(gòu)建最好的軟件贸伐。重要是不要采用反饋-即使您的代碼需要改變勘天,這并不意味著您是有問題的怔揩。得到反饋是正常的捉邢,并且這會幫助您成長!
有些公司有著復(fù)雜的規(guī)則關(guān)于多少人必須審查每一份代碼商膊,嚴(yán)格規(guī)定每一部分代碼的責(zé)任人伏伐。我認(rèn)為那完全沒有必要;我更傾向于一個僅僅規(guī)定每一部分代碼必須有人去審查的簡單的系統(tǒng)晕拆。在實(shí)踐中藐翎,您仍然會將評論發(fā)送給相應(yīng)的代碼責(zé)任人,但是好的地方在于它沒有硬性要求实幕。
這是我認(rèn)為審查代碼是有價值的最大的幾點(diǎn)原因吝镣。
從代碼本身來看,代碼審查最明顯的價值往往是“發(fā)現(xiàn)錯誤”昆庇∧┘郑或者如果您再看的長遠(yuǎn)些,在那些作者不知道的最佳實(shí)踐或者潛在規(guī)則的情況下整吆,代碼審查者可以通過反饋來幫助實(shí)際的代碼變得更好拱撵。
宏觀層面上的知識共享辉川。當(dāng)您審查其他人代碼時,您往往會學(xué)到新技術(shù)拴测,這會使您未來收益-反之亦然乓旗,如果在您的代碼被審查時某個人建議一種更好的方法去做一些事。如果您可以把您學(xué)到的東西在未來使用集索,您將成長為一名工程師屿愚。
微觀層面上的知識共享。通過增加那些熟悉任何代碼的人員來減輕“總線因素”务荆。
共享正確的方向渺鹦。其次,代碼審查迫使您與隊友溝通您在做的事情蛹含,這有助于確保您在短時間內(nèi)不會走向錯誤的方向毅厚,從而給他們回退代碼的機(jī)會。
溝通練習(xí)浦箱。無論是在團(tuán)隊內(nèi)或者團(tuán)隊外吸耿,清晰的溝通是成功工作最重要的技能之一!代碼審查給您一個機(jī)會在無論是在描述更改的目的或者給一個反饋時去練習(xí)清晰的寫作酷窥。
歷史記錄咽安。根據(jù)我的經(jīng)驗(yàn),當(dāng)人們知道有人在閱讀信息時蓬推,他們往往會寫的更好妆棒。當(dāng)回顧舊的更改記錄時這通常是有用的。
關(guān)于要討論的東西沸伏。當(dāng)您試圖同意做什么改變糕珊,有時候很難口頭描述和同意的具體細(xì)節(jié)或者一個特定的算法,通過一段代碼描述可以更加精確毅糟。因?yàn)榇a往往是明確的红选。
團(tuán)隊凝聚力。當(dāng)您定期做代碼審查時姆另,工作感覺有點(diǎn)像一個單一的團(tuán)隊一起工作喇肋,而不是每個人在自己的軌道上運(yùn)行。
閱讀練習(xí)迹辐。練習(xí)閱讀別人的代碼可以幫助您記住如何使自己的代碼更加具有可讀性(可維護(hù)性)蝶防。這將會使好的代碼在以后永遠(yuǎn)持續(xù)下去!我認(rèn)為2明吩,5间学,6三個原因是最有價值的。