程式碼檢閱:Just do it!

來源:互聯網
上載者:User

在“The Soft Side of Peer Reviews”(同儕審查的柔軟面)一文中,Karl Wiegers以下面這段高調的聲明開篇:

譯者註:Karl E. Wiegers是世界著名軟體工程大師,以需求、專案管理、流程改善等領域的研究和實踐著稱。曾任IEEE Software雜誌編委和權威期刊SoftwareDevelopment的特邀編輯和專欄作家。他曾經在柯達公司工作18年,領導過大型Team Dev的流程改善。作為一位多產作家,他憑藉《軟體需求》和《建立軟體工程文化》兩次榮獲被稱為“軟體開發奧斯卡”的Jolt生產效率大獎。他還著有《軟體同儕審查》一書。

同儕審查——軟體交付物原作者以外的其他人幫忙檢查缺陷、促進提升的一種活動——是最有效提高軟體品質的工具之一。同儕審查的方法包括審查、走查、同級桌查、以及其他類似的活動。在從同儕審查中受益了將近15年之後,我絕不再願意在一個不做同儕審查的團隊裡工作。

在Vertigo公司參與了一段時間的程式碼檢閱之後,我堅信,同級之間的程式碼檢閱是你為提高代碼品質所能做的最大的貢獻。如果你現在還沒有跟另外一個開發人員開展程式碼檢閱活動的話,你實際上正在放縱大量的Bug留在你的代碼裡,也使自己錯失了一些關鍵的職業技能發展的契機。就我個人而言,在我找到一位同事幫我檢查完代碼之前,我不會認為我已經完成了編碼。

不過,我說的話你可能不信。McConnell在《代碼大全》(Code Complete)一書裡為程式碼檢閱的功效提供了大量的證據,摘錄如下:

譯者註:Steve McConnell是Construx公司的首席軟體工程師,在公司裡監督軟體工程實施。Steve曾為微軟公司、波音公司和西雅圖地區的公司工作過。他的著作有:1996年的《快速軟體開發》(RapidDevelopment)、1998年的《軟體項目長存之道》(Software
ProjectSurvival Guide)和2004年的《專業軟體開發》(ProfessionalSoftware Development)。由於他的傑出成就,Steve曾兩度獲得SoftwareDevelopment雜誌的優秀震撼大獎(Jolt
ExcellenceAward)。Steve還曾是SPC評估專業版的開發領袖,軟體開發生產力大獎(SoftwareDevelopment
Productivity Award)的獲得者。1998年,Software Development雜誌的讀者推選Steve
McConnell為軟體行業最有影響力的三個人物之一,與Bill Gates、Linus Torvalds齊名。

……孤立的軟體測試功效有限——在平均缺陷發現率方面,單元測試只能達到25%,功能測試可以達到35%,而整合測試也只能達到45%。相比之下,設計和代碼審查的平均功效可以達到55%和60%。評審結果的案例研究非常鼓舞人心:

  • 在一個軟體維護的組織裡,在引入程式碼檢閱之前,55%的單行維護代碼改動都是錯誤的。在引入評審之後,錯誤率降到了2%。如果考量所有的代碼改動,在評審引入之後,95%的代碼改動第一次提交的時候就對了;而在評審引入之前,首次代碼提交的正確率低於20%。
  • 在一個軟體開發的組織裡,由同一批人開發11個程式,前5個在開發過程中不做評審,後6個做評審。在所有的程式都正式發布之後,前5個程式平均每100行代碼有4.5個錯誤,而後6個程式平均每100行代碼只有0.82個錯誤。程式碼檢閱可以消除80%以上的錯誤
  • 安泰保險公司通過代碼審查發現了程式裡82%的錯誤,他們因此能夠減少20%的開發資源投入。
  • IBM的Orbit項目(500000行代碼)使用了11級的審查。軟體提前交付了,錯誤率只有大概1%(這個比率通常是可以接受的)。
  • AT&T內部一個200人的組織報告稱,在他們引入代碼審查之後,生產率提升了14%,而軟體缺陷降低了90%。
  • 美國國家航空航天局下屬的噴氣推進實驗室估計,在早期階段發現並修複缺陷所節省的成本,按照審查次數折算下來,每次審查可以省下大概25000美元。

程式碼檢閱的惟一障礙是找到一位你尊敬的開發人員,然後留出專門的時間來做這件事。一旦你開始這麼做了,我相信你會很快發現,你在程式碼檢閱中花的每一分鐘都會得到十倍的回報!

如果你所在的公司或組織剛剛開始做程式碼檢閱,我強烈推薦Karl的這本書:《軟體同儕審查》(Peer Reviews inSoftware: A Practical Guide)。Karl在他的網站上提供的樣章也不失為一份極好的入門資料。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.