原文做者:Sophie Alperthtml
譯者:UC 國際研發 Jothy前端
寫在最前:歡迎你來到「UC國際技術」公衆號,咱們將爲你們提供與客戶端、服務端、算法、測試、數據、前端等相關的高質量技術文章,不限於原創與翻譯。算法
最近有位朋友問我爲何作 code review 很重要。 至少大多數硅谷科技公司都會對每個變動進行 code review,以確保至少有兩我的看過該變動。 在我以前的工做中,咱們選擇性地(不多)進行 code review,後來團隊來了一位 Google 的新員工,他鼓勵咱們 review 全部代碼 - 咱們照作了。 事實證實這是個了不得的決定。學習
若是你按正確的方式 code review,它不會讓你以爲麻煩。 你和你的 reviewer 不是對手關係,大家是一塊兒努力構建最好的軟件。(重點是不要太介意反饋(feedback) - 即便你得改動代碼,也不表明你有問題。得到反饋很正常,由於它幫助了你成長!)測試
有些公司嚴格規定了每一段代碼必須有多少人review ,以及爲每一段代碼必須肯定好嚴格的 owner。 我以爲這麼作徹底沒有必要,我更喜歡簡單點的系統,惟一的規則是每段代碼都必須有人 review。 在實踐中,你仍然得向維護你所改代碼的人提交評論,但不作硬性要求會更好一些。翻譯
如下是我想到的爲何 review 很重要的幾大緣由。 還挺多的呢!code
代碼自己。 code review 最明顯的價值是「發現錯誤」。 或者若是你再深刻一些,發現了一些做者不知道的最佳實踐或潛在規則的 case,你能夠反饋給他以改進具體代碼。cdn
宏觀層面的知識分享。 當 review 別人的代碼時,你實際上是在學習有益的新技術 - 反之亦然,可能別人在 review 你代碼時給你提了更好的建議。 若是你可以學以至用,你將成爲很棒的工程師。htm
微觀層面的知識分享。 經過增長熟悉全部代碼的人數,來緩和「公車因子(bus factor)」。(譯者注:公車因子越大,表明關鍵人物流失致使項目受到影響的機率越小)get
趨勢分享。 相應地,code review 迫使你與隊友交流大家正在作的事情,大家能夠有機會回滾,這也確保了大家方向的正確性。
溝通實踐。 不管是在團隊內部仍是外部,清晰的溝通都是成功工做的最重要技能! code review 給了你練習清楚寫做的機會,不管是描述變動目的,仍是提交反饋的時候。 並且幸運的話,下次你要寫一些「很是重要」的東西時,你會發現本身早就準備好了。
歷史記錄。 根據個人經驗,若是人們知道他們寫的東西會有人看,他們會寫出更好的 commit 消息。 這在回顧舊變動時很是有用!
能夠討論的東西。 有時候你想贊成某一變動,你會發現很難口頭描述以及表達對特定算法細節的贊同。經過一段代碼進行交流會更精確些,由於代碼每每比較明確。
團隊凝聚力。 當 code review 變成常規活動時,你會感受更像是一個團隊一塊兒工做,而不是每一個人「都在本身的軌道上」。
閱讀練習。 練習閱讀別人的代碼,有助於你把本身的代碼寫得更具可讀性(所以可維護)。 這會讓你以後寫出更好的代碼!
若是非得作個選擇,那麼緣由 二、五、6 對我來講多是最重要的。
好文推薦: React 做者關於 Hooks 的深度 issue,值得你閱讀
「UC國際技術」致力於與你共享高質量的技術文章
歡迎關注咱們的公衆號、將文章分享給你的好友