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