寓教於樂 給程式碼審查者的幾點建議
原文作者Anna Gos發表了一篇博文《Code review FTW》,以下為譯文:
在軟體開發專案中同行程式碼審查是一種常見的做法。有人認為,程式碼審查有助於識別潛在的Bug以及規範專案編碼標準。雖然我不同意這個觀點,但不可否認的是程式碼審查對專案和團隊的確有很大幫助。程式碼審查涉及四大領域,開發者自身、審查者、學習者以及傳教者。可以說,貫穿整個技術和知識領域。
Teaching + Programming (教學+程式設計):程式碼審查為你提供與同伴分享程式設計知識的好機會。在這裡不是為了炫耀你學到的最新技巧,而是去幫助改善另一名開發者的技能。作為一名程式設計師你可以積極的貢獻出個人的成長曆程,提供最寶貴的經驗反饋。利用特定的技術或者引入具體的專案實踐是指導新手的兩大最有效方法。
Teaching + Domain(教學+域):大多數內建的軟體專案具有不平凡的域特點。 一個不平凡的域需要大量的模型來表示其行為和程式碼屬性。由於程式碼的模型行為和屬性是兩個密不可分的部分。因此,審查者在整個域建模思路中扮演一個極其重要的角色。
Learning + Programming(學習+程式設計):開發者在程式碼審查上會利用不同方法來解決問題。觀察和理解其他程式設計師編寫的程式碼是改善程式碼風格、掌握技術、瞭解新的類庫以及學習新的模式最有效的方式之一。
Learning + Domain(學習+域):在程式碼中捕獲資訊是學習域的概念和整體功能一項最基本的資源。程式碼實際上是一個軟體系統最詳細的文件列表。理解性的閱讀程式碼能夠有助於擴充套件理解系統以外的內容。
大多數開發者會在程式碼審查領域中游離,因為他們想成為更好的程式設計師以及學習更多的域知識。儘管有些開發者有機會學到更多,但他們常常會因此而感到滿足。如果一名開發者在某個專案中採用新技術(除了這個領域的專家),他將扮演兩個角色。在某種情況下審查者會發現自己同時處在四個領域。 意識到這些領域的優勢是做程式碼程式碼審查最寶貴的經驗,無論審查者的資歷水平如何。
給程式碼審查者的幾點建議:
讓團隊中的所有開發者擁有程式碼所有權——作為開發者,我們喜歡在家編碼的感覺。程式碼審查從程式碼所有者切換至團隊作者,他們擁有共同的利益。這種關係的轉換使得整個團隊都在為程式碼質量而負責,任何一名團隊成員都應積極擁抱變化。此外,在極限程式設計中還涉及到共享程式碼(或集體程式碼所有權)問題。
逐步提高開發者的編碼技能——同行審查能夠提高團隊的平均技能水平。此外,它還具備了無形的壓力促使開發者更寫更好的程式碼。
傳播域知識——理解從程式碼中捕獲的功能有助於在整個團隊成員之間傳播(共享)系統知識。它使整個團隊間更有凝聚力,有效避免了任何一名開發者在任意系統工作領域中“挑三揀四”的情況發生。
培養集體智慧——團隊整體完成的專案質量要遠遠高出開發者獨自完成工作的總和。每位開發者都可帶來不同的技能,實現協同程式設計,為團隊“添磚加瓦”。
程式碼審查是我最喜愛的團隊建設活動之一。它不僅是關注程式碼,而且還能見證整個團隊的成長。值得一提的是,結隊程式設計常被看作是程式碼審查的一種極端形式,這是一種值得推崇的程式碼審查方式。
英文出自:Anna Gos
相關文章
- 關於程式碼審查的幾點建議
- Go 程式碼審查建議Go
- 寓教於樂:教你學程式設計的 5 款遊戲程式設計遊戲
- [譯] 程式碼評審的 8 點建議
- 給新手程式設計師的幾點建議程式設計師
- 寓教於樂 11款最適合教兒童程式設計的學習工具程式設計
- 高效程式碼審查:來自前質疑者的9個建議
- 程式碼審查的5點經驗教訓總結
- 寓教於樂:教育類遊戲入局微信小遊戲遊戲
- SAP MM 對於MRKO事務程式碼的幾點優化建議優化
- 寓教於樂!一款遊戲讓你成為 Vim 高手!遊戲
- 程式設計幾點建議程式設計
- 寫給資料分析師的幾點建議
- 優化python程式的幾點建議優化Python
- 關於加強MYSQL安全的幾點建議MySql
- 這 5 款寓教於樂的「功能遊戲」,讓你上觀星空下知故宮遊戲
- 給IT新人的15點建議
- 雷軍給程式設計師的五點建議程式設計師
- 給新人程式設計師的 10 點建議程式設計師
- 自學 JAVA 的幾點建議Java
- ABAP程式碼執行時間最佳化的幾點建議
- 給開發人員的幾點建議:如何理解你的DBATHBAT
- 關於浙江機器人品質管理的幾點建議機器人
- 關於Python日誌系統的幾點建議Python
- 程式碼審查
- 給機器學習面試者的十項建議機器學習面試
- 給初學java的一點建議Java
- 防疫科普中寓教於樂 這些抗疫小遊戲成就了行業的高光時刻遊戲行業
- 優化 Webpack 構建效能的幾點建議優化Web
- 優化Webpack構建效能的幾點建議優化Web
- 關於遠端教育平臺開發的幾點建議
- 年終工作總結:給新手程式設計師的幾個建議程式設計師
- UITableView效能優化的幾點建議UIView優化
- 程式碼審查工具
- 程式碼審查“查”什麼?
- 給各位PHP程式設計師十點未來的建議PHP程式設計師
- 通過Sonar 初步構建程式碼持續審查
- 給中級程式設計師突破瓶頸的幾個建議,收藏~程式設計師