寓教於樂 給程式碼審查者的幾點建議

csdn發表於2013-08-21

  原文作者Anna Gos發表了一篇博文《Code review FTW》,以下為譯文:

  在軟體開發專案中同行程式碼審查是一種常見的做法。有人認為,程式碼審查有助於識別潛在的Bug以及規範專案編碼標準。雖然我不同意這個觀點,但不可否認的是程式碼審查對專案和團隊的確有很大幫助。程式碼審查涉及四大領域,開發者自身、審查者、學習者以及傳教者。可以說,貫穿整個技術和知識領域。

寓教於樂 給程式碼審查者的幾點建議

  Teaching + Programming (教學+程式設計):程式碼審查為你提供與同伴分享程式設計知識的好機會。在這裡不是為了炫耀你學到的最新技巧,而是去幫助改善另一名開發者的技能。作為一名程式設計師你可以積極的貢獻出個人的成長曆程,提供最寶貴的經驗反饋。利用特定的技術或者引入具體的專案實踐是指導新手的兩大最有效方法。

  Teaching + Domain(教學+域):大多數內建的軟體專案具有不平凡的域特點。 一個不平凡的域需要大量的模型來表示其行為和程式碼屬性。由於程式碼的模型行為和屬性是兩個密不可分的部分。因此,審查者在整個域建模思路中扮演一個極其重要的角色。

  Learning + Programming(學習+程式設計):開發者在程式碼審查上會利用不同方法來解決問題。觀察和理解其他程式設計師編寫的程式碼是改善程式碼風格、掌握技術、瞭解新的類庫以及學習新的模式最有效的方式之一。

  Learning + Domain(學習+域):在程式碼中捕獲資訊是學習域的概念和整體功能一項最基本的資源。程式碼實際上是一個軟體系統最詳細的文件列表。理解性的閱讀程式碼能夠有助於擴充套件理解系統以外的內容。

  大多數開發者會在程式碼審查領域中游離,因為他們想成為更好的程式設計師以及學習更多的域知識。儘管有些開發者有機會學到更多,但他們常常會因此而感到滿足。如果一名開發者在某個專案中採用新技術(除了這個領域的專家),他將扮演兩個角色。在某種情況下審查者會發現自己同時處在四個領域。 意識到這些領域的優勢是做程式碼程式碼審查最寶貴的經驗,無論審查者的資歷水平如何。

  給程式碼審查者的幾點建議:

  讓團隊中的所有開發者擁有程式碼所有權——作為開發者,我們喜歡在家編碼的感覺。程式碼審查從程式碼所有者切換至團隊作者,他們擁有共同的利益。這種關係的轉換使得整個團隊都在為程式碼質量而負責,任何一名團隊成員都應積極擁抱變化。此外,在極限程式設計中還涉及到共享程式碼(或集體程式碼所有權)問題。

  逐步提高開發者的編碼技能——同行審查能夠提高團隊的平均技能水平。此外,它還具備了無形的壓力促使開發者更寫更好的程式碼。

  傳播域知識——理解從程式碼中捕獲的功能有助於在整個團隊成員之間傳播(共享)系統知識。它使整個團隊間更有凝聚力,有效避免了任何一名開發者在任意系統工作領域中“挑三揀四”的情況發生。

  培養集體智慧——團隊整體完成的專案質量要遠遠高出開發者獨自完成工作的總和。每位開發者都可帶來不同的技能,實現協同程式設計,為團隊“添磚加瓦”。

  程式碼審查是我最喜愛的團隊建設活動之一。它不僅是關注程式碼,而且還能見證整個團隊的成長。值得一提的是,結隊程式設計常被看作是程式碼審查的一種極端形式,這是一種值得推崇的程式碼審查方式。

  英文出自:Anna Gos

相關文章