Robert C. Martin是***軟件開發(fā)大師,設(shè)計模式和敏捷開發(fā)先驅(qū),敏捷聯(lián)盟首任主席,C++ Report前主編,被后輩程序員尊稱為“Bob大叔”。20世紀(jì)70年代初成為職業(yè)程序員,后創(chuàng)辦Object Mentor公司并任總裁。他還是一名多產(chǎn)的作家,至今已發(fā)表數(shù)百篇文章、論文和博客文章。除本書外,還著有《代碼整潔之道》《敏捷軟件開發(fā):原則、模式和實踐》等。
圖書目錄
目 錄 Pre-Requisite Introduction / 必讀引言 1 Chapter 1 Professionalism / 專業(yè)主義 7 Be Careful What You Ask For / 清楚你要什么 8 Taking Responsibility / 擔(dān)當(dāng)責(zé)任 8 First, Do No Harm / 首先,不行損害之事 11 Work Ethic 16 Bibliography / 參考文獻 22 Chapter 2 Saying No / 說“不” 23 Adversarial Roles / 對抗角色 26 High Stakes / 高風(fēng)險時刻 29 Being a “Team Player” / 要有團隊精神 30 The Cost of Saying Yes / 說“是”的成本 36 Code Impossible / 如何寫出好代碼 41 Chapter 3 Saying Yes / 說“是” 45 A Language of Commitment / 承諾用語 47 Learning How to Say “Yes” / 學(xué)習(xí)如何說“是” 52 Conclusion / 結(jié)論 56 Chapter 4 Coding / 編碼 57 Preparedness / 做好準(zhǔn)備 58 The Flow Zone / 流態(tài)區(qū) 62 Writer’s Block / 阻塞 64 Debugging / 調(diào)試 66 Pacing Yourself / 保持節(jié)奏 69 Being Late / 進度延遲 71 Help / 幫助 73 Bibliography / 參考文獻 76 Chapter 5 Test Driven Development / 測試驅(qū)動開發(fā) 77 The Jury Is In / 此事已有定論 79 The Three Laws of TDD / TDD的三項法則 79 What TDD Is Not / TDD的局限 83 Bibliography / 參考文獻 84 Chapter 6 Practicing / 練習(xí) 85 Some Background on Practicing / 引子 86 The Coding Dojo / 編程柔道場 89 Broadening Your Experience / 自身經(jīng)驗的拓展 93 Conclusion / 結(jié)論 94 Bibliography / 參考文獻 94 Chapter 7 Acceptance Testing / 驗收測試 95 Communicating Requirements / 需求的溝通 95 Acceptance Tests / 驗收測試 100 Conclusion / 結(jié)論 111 Chapter 8 Testing Strategies / 測試策略 113 QA Should Find Nothing / QA應(yīng)該找不到任何錯誤 114 The Test Automation Pyramid / 自動化測試金字塔 115 Conclusion / 結(jié)論 119 Bibliography / 參考文獻 119 Chapter 9 Time Management / 時間管理 121 Meetings / 會議 122 Focus-Manna / 注意力點數(shù) 127 Time Boxing and Tomatoes / 時間拆分和番茄工作法 130 Avoidance / 要避免的行為 131 Blind Alleys / 死胡同 131 Marshes, Bogs, Swamps, and Other Messes / 泥潭 132 Conclusion / 結(jié)論 133 Chapter 10 Estimation / 預(yù)估 135 What Is an Estimate / 什么是預(yù)估 138 PERT 141 Estimating Tasks / 預(yù)估任務(wù) 144 The Law of Large Numbers / 大數(shù)定律 147 Conclusion / 結(jié)論 147 Bibliography / 參考文獻 148 Chapter 11 Pressure / 壓力 149 Avoiding Pressure / 避免壓力 151 Handling Pressure / 應(yīng)對壓力 153 Conclusion / 結(jié)論 155 Chapter 12 Collaboration / 協(xié)作 157 Programmers versus People / 程序員與人 159 Cerebellums / 小腦 164 Conclusion / 結(jié)論 166 Chapter 13 Teams and Projects / 團隊與項目 167 Does It Blend / 只是簡單混合嗎 168 Conclusion / 結(jié)論 171 Bibliography / 參考文獻 171 Chapter 14 Mentoring, Apprenticeship, and Craftsmanship / 輔導(dǎo)、學(xué)徒期與技藝 173 Degrees of Failure / 失敗的學(xué)位教育 174 Mentoring / 輔導(dǎo) 174 Apprenticeship / 學(xué)徒期 180 Craftsmanship / 技藝 184 Conclusion / 結(jié)論 185 Appendix A Tooling / 工具 187 Tools / 工具 189 Source Code Control / 源代碼控制 189 IDE/Editor / 集成開發(fā)環(huán)境/編輯器 194 Issue Tracking / 問題跟蹤 196 Continuous Build / 持續(xù)構(gòu)建 197 Unit Testing Tools / 單元測試工具 198 Component Testing Tools / 組件測試工具 199 Integration Testing Tools / 集成測試工具 200 UML/MDA 201 Conclusion / 結(jié)論 204