摘要: Code Review 可以提高代碼質量,
- 原文:Elevenbeans
- 作者:前端小智
Fundebug經授權轉載,著作權歸原作者所有,
原文地址:https://kellysutton.com/2018/10/08/8-tips-for-great-code-reviews.html
更多內容請見譯者 Blog:https://github.com/elevenbeans/elevenbeans.github.io
你在學校里不曾學到的東西中有一件是:如何才做出優秀的 Code Review,你學到了演算法、資料結構、編程語言基礎知識,但沒有人坐下來說:“下面介紹如何確保你如何(對同事)提出很棒的反饋(Code Review)”,
Code Reviews 是開發出好軟體的關鍵程序,經過審核的代碼往往質量較高、錯誤較少,一個良性的 Code Reviews 文化也提供了額外的好處:
- Ta 可以對于 bus factor (和 key person risk 相近,意為少數關鍵的技術人員帶隊,一旦人才流失對團隊是很大打擊,團隊抗風險能力弱)進行有效限制;
- Ta 是培訓新成員的一個很好的工具;
- Ta 也是共享知識的好方法
假設
在我們深入研究之前,為這篇文章中的要點做一些假設是很重要的, 它們如下:
- 你在信任的環境中作業,或者您和您的團隊正在努力提高你對他們的信任度;
- 您應該能夠在非代碼方案中提供反饋,或者正在努力在您的團隊中提供反饋;
- 你的團隊希望產生更好的代碼,并且理解完美是動詞而不是形容詞, 我們明天可能會找到一種更好的做事方式,我們需要保持開放的心態;
- 你的公司重視高質量的代碼,并理解業務可能不會快速“交付”,用引號是因為未經測驗和未經審核的代碼實際上可能無法正常作業;
現在我們已經制定了一些基本規則,讓我們深入研究,
1. 我們是人類
很好理解,你即將審核的代碼中,有人花了時間、付出了心血,他們會希望自己的代碼寫的很棒,你的同事會表現出最好的意圖,沒有人愿意發送蹩腳的代碼,
保持客觀是非常困難的,你需要始終確保批評代碼本身,并嘗試理解撰寫代碼的背景關系,盡可能多地取消除區隔,而不是說:
你以一種令人困惑的方式寫了這個方法,
請嘗試重新改寫代碼本身以及重新理清對 Ta 的理解:
這個方法讓我有點困惑,我們能為這個變數找到一個更好的名字嗎?
這里,我們會解釋我們作為讀者對代碼的看法,這不是他們的行為或意圖,這是關于我們和我們對代碼的解釋,
每個 PR 都是它自己的艱難對話,嘗試與您的同事達成共識,共同努力實作更好的代碼,
如果您剛剛結識了同事,并且您對 PR 有重要反饋,請一起瀏覽代碼,這將是一個與同事建立關系的好機會,與每位同事一起做到這一點,直到這件事情讓你不再感覺尷尬,
2. 自動化
如果計算機可以決定并執行規則,請讓計算機執行此操作,無休止地爭論 Space 與 Tab 并不能充分利用時間、提高任何效率,相反,應該花時間對于規則達成一致意見,在低風險情景中,這有機會可以讓你了解你的團隊在 “不認同但承諾”方面的表現,
語言和現代工具鏈不缺乏執行規則(linting)和復用它們的方法, 在 Ruby 中,你有 Rubocop; 在 JavaScript 中,Jslint/eslint, 找到你的語言的 linter 并將其插入你專案的構建流程,
如果您發現缺少現有的 linter,請自己撰寫! 撰寫自己的規則非常簡單, 在 Gusto 中,我們使用自定義的 linter 規則來捕捉類的棄用或溫和地提醒人們遵守一些 Sidekiq 的最佳實踐,
3. 全員參與
將所有代碼審查職責一股腦全交給 Shirley 是很誘人的,
Shirley 是一個關于代碼的大師,她總是知道什么是最好的,她知道系統的來龍去脈,而且她在公司作業的時間超過了團隊的集體任期,
然而,僅僅因為 Shirley 理解某些事情并不意味著她的團隊中的其他人可以理解,年輕的團隊成員可能會對指出 Shirley 的代碼評論的問題而猶豫不決,
我發現將評論分發給團隊的不同成員會產生更健康的團隊互動和更好的代碼,初級工程師在代碼審查中最強大的一句是“我發現這令人困惑,”這些就是使代碼更清晰,更簡單的機會,
請傳播這些評論,
4. 增加可讀性
在 Gusto,我們使用 GitHub 來管理我們的代碼專案,幾乎 GitHub 上的每個<textarea>都支持Markdown,這是一種在評論中添加 HTML 格式的簡單方法,
擁抱 Markdown 是讓事物變得可讀的好方法,GitHub 或您選擇的工具可能具有語法突出顯示,這對于洗掉一些代碼片段非常有用,使用行內代碼的單反引號(`)或代碼塊的三重反引號(```)可以更好地傳達想法,
熟悉 Markdown 語法,特別是在注釋中撰寫代碼時, 這樣做有助于保持您的評論具體和專注,
5. 至少留下一個積極評論
代碼評論本質上是負面的事情,在我要將此代碼發布到線上環境之前告訴我這個代碼有什么問題,這是挺傷人的事兒,有人花時間在這上面,并期望你會指出它會如何變得更好,
因此,請至少留下一個積極的評論,讓它變得有意義和極具個性,如果有人終于掌握了他們一直在努力的掌握的事情,那么就請你把它 Ta 出來, 它可以像點個贊
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/213214.html
標籤:其他
上一篇:安裝社區版git倉庫
