本書提供作譯者介紹Kent Beck長期致力于軟件工程的理論研究和實踐,同時還具有講授極限編程的豐富經(jīng)驗,是極限編程方面的權(quán)威。Kent Beck是軟件開發(fā)方法學(xué)的泰斗、XP的創(chuàng)始人,作為軟件業(yè)內(nèi)最富創(chuàng)造性和最有口碑的領(lǐng)導(dǎo)人之一,Kent Beck極力推崇模式、極限編程和測試驅(qū)動開發(fā),是多部暢銷書如Smalltalk Best Practice Patterns、《解析極限編程——擁抱變化》和《規(guī)劃極限編程》(與Martin Fowler合著)的作者,并且是超級暢銷書《重構(gòu)——改善既有代碼的設(shè)計》的特約撰稿人。...
圖書目錄
PART I: The Money Example 1 Chapter 1: Multi-Currency Money 3 Chapter 2: Degenerate Objects 11 Chapter 3: Equality for All 15 Chapter 4: Privacy 19 Chapter 5: Franc-ly Speaking 23 Chapter 6: Equality for All, Redux 27 Chapter 7: Apples and Oranges 33 Chapter 8: Makin' Objects 35 Chapter 9: Times We're Livin' In 39 Chapter 10: Interesting Times 45 Chapter 11: The Root of All Evil 51 Chapter 12: Addition, Finally 55 Chapter 13: Make It 61 Chapter 14: Change 67 Chapter 15: Mixed Currencies 73 Chapter 16: Abstraction, Finally 77 Chapter 17: Money Retrospective 81 PART II: The xUnit Example 89 Chapter 18: First Steps to xUnit 91 Chapter 19: Set the Table 97 Chapter 20: Cleaning Up After 101 Chapter 21: Counting 105 Chapter 22: Dealing with Failure 109 Chapter 23: How Suite It Is 113 Chapter 24: xUnit Retrospective 119 PART III: Patterns for Test-Driven Development 121 Chapter 25: Test-Driven Development Patterns 123 Chapter 26: Red Bar Patterns 133 Chapter 27: Testing Patterns 143 Chapter 28: Green Bar Patterns 151 Chapter 29: xUnit Patterns 157 Chapter 30: Design Patterns 165 Chapter 31: Refactoring 181 Chapter 32: Mastering TDD 193 Appendix I: Influence Diagrams 207 Appendix II: Fibonacci 211 Afterword 215 Index 217 附注A 注釋關(guān)鍵點匯總 221 附注B xUnit實例的Java版本 223 中文目錄 第1部分 貨幣實例 第1章 多幣種資金 3 工欲善其事,必先利其器。初次見到TDD,還是先試試JUnit稱心不稱心吧。另外,從開始時就建立“TODO List”的習(xí)慣很重要。 第2章 變質(zhì)的對象 11 Interface不是拍腦門得來的,而是因為測試用例編譯不能通過。盡快讓測試用例運(yùn)行是壓倒一切的中心任務(wù)。 第3章 一切均等 15 學(xué)會試用重構(gòu)改進(jìn)設(shè)計,重構(gòu)和TDD是不可分離的左右手。 第4章 私有性 19 本章使用剛剛開發(fā)的一個功能來改進(jìn)測試用例。 第5章 法郎在訴說 23 大的目標(biāo)還不清晰的時候,可以先寫一些小的測試用例,或者把大的測試拆成小的。 第6章 也談一切均等 27 消除冗余代碼,有時很需要技巧。 第7章 蘋果和橘子 33 除非有很好的動機(jī),否則不要引入更多的設(shè)計。 第8章 制造對象 35 再次消除冗余代碼,這常常是重構(gòu)的主要目的。 第9章 我們所處的時代 39 軟件設(shè)計不要天馬行空,要腳踏實地。 第10章 有趣的乘法 45 Java程序員有時用toString()方法直接調(diào)試,不用擔(dān)心,大師也這么做。 第11章 萬惡之源 51 刪除一些測試,因為它們已經(jīng)冗余了或不適應(yīng)新的設(shè)計。 第12章 加法,最后的部分 55 在設(shè)計中應(yīng)用比喻,在比喻中書寫測試,在測試的推動下產(chǎn)生代碼,用代碼回應(yīng)設(shè)計。 第13章 完成 61 步調(diào)已經(jīng)開始加快,編寫測試用例,迫使開發(fā)往前走,而不要往后退。 第14章 變化 67 TDD不分測試和“實驗”,本章寫了一個測試程序來核實有關(guān)Java語言的推斷。同時引入了一個幫助類,沒有對其進(jìn)行專門測試。 第15章 混合貨幣 73 重構(gòu)產(chǎn)生了蝴蝶效應(yīng),引發(fā)了我們對設(shè)計的一系列修改,好在有測試,膽子比以前大多了。 第16章 抽象,最后的部分 77 整理前面所有章節(jié)所寫的這個例子——Money,根據(jù)編譯器留下的面包屑前進(jìn),放棄失敗的試驗。 第17章 貨幣實例回顧 81 計劃、測試、重構(gòu)——程序員的三件法寶,熟練之后,讓TDD深入軟件開發(fā)的全過程,控制步調(diào)的大小,最后引入性能測試和可用性測試等其他測試類型。 第2部分 xUnit實例 第18章 xUnit入門 91 完全都以最小的步伐前進(jìn),為我們的測試框架做好準(zhǔn)備,本章介紹的是一個難度稍大的例子。 第19章 設(shè)置表格 97 明確了編寫簡單的測試比測試的執(zhí)行性能更重要,本章測試并實現(xiàn)了setUp()。 第20章 后期整理 101 發(fā)現(xiàn)了一個問題,大膽地修復(fù)它,不要回退。本章測試并實現(xiàn)了tearDown()。 第21章 計數(shù) 105 本章引入了測試結(jié)果TestResult類。 第22章 失敗處理 109 事實證明我們把大規(guī)模的測試留在后面,先完成小規(guī)模的測試是無比正確的。 第23章 如何組成Suite 113 本章完成了TestSuite類,改變了run方法的接口。 第24章 xUnit實例回顧 119 我們已經(jīng)實現(xiàn)了xUnit,可以進(jìn)而實現(xiàn)xUnit的GUI。但是xUnit的精髓在于簡單和完全控制。 第3部分 測試驅(qū)動開發(fā)模式 第25章 測試驅(qū)動開發(fā)的模式 123 不能用“我們沒有時間去運(yùn)行測試,發(fā)布軟件后再說吧”這樣的話麻痹自己,要堅定測試的決心。此外,如何選擇測試數(shù)據(jù)十分重要。 第26章 紅色進(jìn)度條模式 133 本章這些模式是關(guān)于什么時候?qū)憸y試、在哪里寫測試以及什么時候停止寫測試的。 第27章 測試模式 143 本章這些模式是關(guān)于如何把測試寫出技術(shù)、寫出水平、寫出道理的。 第28章 綠色進(jìn)度條測試 151 讓測試盡快運(yùn)行的三件法寶——偽實現(xiàn)、三角法、顯明實現(xiàn)。 第29章 xUnit模式 157 本章這些模式是關(guān)于xUnit如何工作的。 第30章 設(shè)計模式 165 本章這些模式是“設(shè)計模式”在本書中的一個縮影。 第31章 重構(gòu) 181 本章這些模式是“重構(gòu)”在本書中的一個縮影。與第30章一樣,這些不僅有助于我們編寫測試用例,也能應(yīng)用在我們編寫的其他代碼上。 第32章 駕馭TDD 193 這是全書最重要的一章,掌握TDD的關(guān)鍵所在。我們要做的不僅僅是一個TDD的愛好者和倡導(dǎo)者,我們要做的是真正在實踐中用到TDD。這也是全書最精彩的一章,可以從中讀到大師在面對軟件過程改進(jìn)的困難時所采用的心態(tài)、戰(zhàn)略、信念和手段。作為全書的升華,我們應(yīng)該反復(fù)讀,用心品。 附錄I 影響圖 207 附錄II Fibonacci實例 211 后記 215 索引 217 附注A 注釋關(guān)鍵點匯總 221 附注B xUnit實例的Java版本 223