Kent Beck

Kent Beck

軟體開發方法學的泰山北斗,是最早研究軟體開發的模式和重構的人之一,是敏捷開發的開創者之一,更是極限編程和測試驅動開發的創始人,同時還是JUnit的作者,對當今世界的軟體開發影響深遠。

人物簡介

Kent Beck全家似乎都瀰漫著技術的味道。生長在矽谷, 有著一個對無線電痴迷的祖父,以及一個電器工程師父親。從小就引導Kent Beck成為了業餘無線電愛好者。

在俄勒岡州大學讀本科期間,Kent Beck就開始研究起模式。然而在他最終拿到計算機學位之前,他卻是在計算機和音樂中交替學習。似乎Java大師都能夠有這樣的能耐,另一Java大牛Rod Johnson同樣也擁有音樂學的博士學位。

Kent Beck一直倡導軟體開發的模式定義。早在1993年,他就和Grady Booch(UML之父)發起了一個團隊進行這個方面的研究。雖然著有了《Smalltalk Best Practice Patterns》一書,但這可能並不是Kent Beck最大的貢獻。他於1996年在DaimlerChrysler啟動的關於軟體開發的項目,才真正地影響後來的軟體開發。這次的傑作就是XP(極限編程)的方法學。和軟體開發大師Martin Fowler合著的《Planning Extreme Programming》可謂是關於XP的奠基之作。從此,一系列的作品如《Test Driven Development: By Example》,《Extreme Programming Explained: Embrace Change》讓更多的人領略到了極限編程的精髓,也逐步導致了極限編程的流行。

Kent Beck的貢獻遠不僅如此。對於眾多的Java程式設計師來說,他和Erich Gamma共同打造的JUnit,意義更加重大。也許正式這個簡單而又強大的工具,讓眾多的程式設計師更加認可和信賴極限編程,從而引起了Java敏捷開發的狂潮吧。  

主要成就

設計模式

設計模式(Design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無疑問,設計模式於己於他人於系統都是多贏的,設計模式使代碼編制真正工程化,設計模式是軟體工程的基石脈絡,如同大廈的結構一樣。

Kent Beck雖然不是《設計模式:可復用面向對象軟體的基礎》一書的作者,但確是對設計模式的發展影響最大的先行者之一。建築師Christopher Alexander第一個研究了建築物和社區的模式,並開發了一個“模式語言”來生成它們,Kent Beck是軟體界中首先倡導學習Christopher Alexander的工作的先驅者之一。在1993年Kent Beck開始在《The Smalltalk Report》上撰寫關於Smalltalk模式的一個專欄。Kent Beck在1996年出版了《Smalltalk Best Practice Patterns》一書。  

重構

重構(Refactoring)就是在不改變軟體現有功能的基礎上,通過調整程式代碼改善軟體的質量、性能,使其程式的設計模式和架構更趨合理,提高軟體的擴展性和維護性。

在軟體的重構技術的發展歷程上,Kent Beck同樣是一位偉大的先行者。最早認識重構重要性的兩個人是Ward Cunningham和Kent Beck,他們早在1980s之前就開始使用Smalltalk,那是個特別適合重構的環境。Smalltalk是一個十分動態的環境,你可以很快寫出極具功能的軟體。Smalltalk的「編譯/連結/執行」周期非常短,因此很容易快速修改代碼。它是面向對象,所以也能夠提供強大工具,最大限度地將修改的影響隱藏於定義良好的接口背後。Ward和Kent努力發展出一套適合這類環境的軟體開發過程(如今Kent把這種風格叫作極限編程)。他們意識到:重構對於提高他們的生產力非常重要。從那時起他們就一直在工作中運用重構技術,在嚴肅而認真的軟體項目中使用它,並不斷精煉這個程式。Ward和Kent的思想對Smalltalk社群產生了極大影響,重構概念也成為Smalltalk文化中的一個重要元素。  

《重構:改善既有代碼的設計》一書中,Kent Beck也作出了很多貢獻,是該書的合作者之一,著名的“代碼壞味道”這一說法就是由Kent Beck提出的。

極限編程

極限編程(ExtremeProgramming,簡稱XP)是由Kent Beck在1996年提出的。Kent Beck在九十年代初期與Ward Cunningham共事時,就一直共同探索著新的軟體開發方法,希望能使軟體開發更加簡單而有效。Kent仔細地觀察和分析了各種簡化軟體開發的前提條件、可能性以及面臨的困難。1996年三月,Kent終於在為Daimler Chrysler所做的一個項目中引入了新的軟體開發觀念——XP。

極限編程是一個輕量級的、靈巧的軟體開發方法;同時它也是一個非常嚴謹和周密的方法。它的基礎和價值觀是交流、樸素、反饋和勇氣;即,任何一個軟體項目都可以從四個方面入手進行改善:加強交流;從簡單做起;尋求反饋;勇於實事求是。XP是一種近螺旋式的開發方法,它將複雜的開發過程分解為一個個相對比較簡單的小周期;通過積極的交流、反饋以及其它一系列的方法,開發人員和客戶可以非常清楚開發進度、變化、待解決的問題和潛在的困難等,並根據實際情況及時地調整開發過程。  

測試驅動開發

測試驅動開發,英文全稱Test-Driven Development,簡稱TDD,是一種不同於傳統軟體開發流程的新型的開發方法。它要求在編寫某個功能的代碼之前先編寫測試代碼,然後只編寫使測試通過的功能代碼,通過測試來推動整個開發的進行。這有助於編寫簡潔可用和高質量的代碼,並加速開發過程。

測試驅動開發的基本過程如下:

① 快速新增一個測試

② 運行所有的測試(有時候只需要運行一個或一部分),發現新增的測試不能通過

③ 做一些小小的改動,儘快地讓測試程式可運行,為此可以在程式中使用一些不合情理的方法

④ 運行所有的測試,並且全部通過

⑤ 重構代碼,以消除重複設計,最佳化設計結構

簡單來說,就是不可運行/可運行/重構——這正是測試驅動開發的口號。  

JUnit

JUnit由XP和TDD的創始人、軟體大師Kent Back以及Eclipse架構師之一、設計模式之父Erich Gamma共同打造。名家的手筆和理念使得JUnit簡單而強大,它將Java程式設計師代入了測試驅動開發的時代。JUnit連任了2001、2002年“Java World編輯選擇獎”以及2003年“Java World最佳測試工具”和2003年“Java Pro最佳Java測試工具”等眾多獎項,深受Java程式設計師好評。

十大Java人物

• James Gosling : Java之父

• Bill Joy : 軟體業的愛迪生

• Joshua Bloch : Java 2 元勛

• Bruce Eckel : 功勳卓著的機會主義分子

• Rickard Oberg :J2EE奇才

• Doug Lea : 世界上對Java影響力最大的個人

• Scott McNealy :SUN十年來的掌舵者

• Rod Johnson : 用一本書改變了Java世界的人

• Alan Kay :Java的精神先鋒

• Kent Beck : 領導的敏捷潮

出版著作

• 1987. "Using Pattern Languages for Object-Oriented Programs". With Ward Cunningham. OOPSLA'87.

• 1989. "A Laboratory For Teaching Object-Oriented Thinking". With Ward Cunningham. OOPSLA'89.

• 1989. "Simple Smalltalk Testing: With Patterns". Origins of xUnit frameworks.

• 1996. Smalltalk Best Practice Patterns. Prentice Hall. (ISBN 978-0134769042)

• 1996. Kent Beck's Guide to Better Smalltalk : A Sorted Collection. Cambridge University Press. (ISBN 978-0521644372)

• 1999. Extreme Programming Explained: Embrace Change. Addison-Wesley. Winner of the Jolt Productivity Award. (ISBN 978-0321278654)

• 2000. Planning Extreme Programming. With Martin Fowler. Addison-Wesley. (ISBN 978-0201710915)

• 2002. Test-Driven Development: By Example. Addison-Wesley. Winner of the Jolt Productivity Award. (ISBN 978-0321146533)

• 2003. Contributing to Eclipse: Principles, Patterns, and Plugins. With Erich Gamma. Addison-Wesley. (ISBN 978-0321205759)

• 2004. JUnit Pocket Guide. O'Reilly. (ISBN 978-0596007430)

• 2004. Extreme Programming Explained: Embrace Change, 2nd Edition. With Cynthia Andres. Addison-Wesley. Completely rewritten. (ISBN 978-0201616415)

• 2008. Implementation Patterns. Addison-Wesley. (ISBN 978-0321413093)

相關詞條

熱門詞條

聯絡我們