Chapter 1: Clean Code 整潔代碼 There Will Be Code 要有代碼 Bad Code 糟糕的代碼 The Total Cost of Owning a Mess 混亂的代價 The Grand Redesign in the Sky 華麗新設計 Attitude 態度 The Primal Conundrum 謎題 The Art of Clean Code? 整潔代碼的藝術 What Is Clean Code? 什麼是整潔代碼 Schools of Thought 思想流派 We Are Authors 我們是作者 The Boy Scout Rule 童子軍軍規 Prequel and Principles 前傳與原則 Conclusion 小結 Bibliography 文獻 Chapter 2: Meaningful Names 有意義的命名 Introduction 介紹 Use Intention-Revealing Names 名副其實 Avoid Disinformation 避免誤導 Make Meaningful Distinctions 做有意義的區分 Use Pronounceable Names 使用讀得出來的名稱 Use Searchable Names 使用可搜索的名稱 Avoid Encodings 避免使用編碼 Hungarian Notation 匈牙利語標記法 Member Prefixes 成員前綴 Interfaces and Implementations 介面和實現 Avoid Mental Mapping 避免思維映射 Class Names 類名 Method Names 方法名 Don't Be Cute 別抖機靈 Pick One Word per Concept 每個概念對應一個詞 Don't Pun 別用雙關語 Use Solution Domain Names 使用解決方案領域名稱 Use Problem Domain Names 使用源自所涉問題領域的名稱 Add Meaningful Context 添加有意義的語境 Don't Add Gratuitous Context 不要添加沒用的語境 Final Words 最後的話 Chapter 3: Functions 函數 Small! 短小 Do One Thing 只做一件事 One Level of Abstraction per Function 每個函數一個抽象層級 Switch Statements switch 語句 Use Descriptive Names 使用具有描述性的名稱 Function Arguments 函數參數 Common Monadic Forms 單參數函數的普遍形式 Flag Arguments 標識參數 Dyadic Functions 雙參數函數 Triads 三參數函數 Argument Objects 參數對象 Argument Lists 參數列表
Verbs and Keywords 動詞與關鍵字 Have No Side Effects 無副作用 …… Chapter 4: Comments 註釋 Chapter 5: Formatting Chapter 6: Objects and Data Structures 對象和數據結構 Chapter 7: Error Handling 錯誤處理 Chapter 8: Boundaries 邊界 Chapter 9: Unit Tests 單元測試 Chapter 10: Classes 類 Chapter 11: Systems 系統 Chapter 12: Emergence 迭進 Chapter 13: Concurrency 併發編程 Chapter 14: Successive Refinement 逐步改進 Chapter 15: JUnit Internals JUnit 內幕 Chapter 16: Refactoring SerialDate 重構SerialDate Chapter 17: Smells and Heuristics 味道與啟發 Appendix A: Concurrency Ⅱ 併發編程Ⅱ Appendix B: org.jfree.date.SerialDate Appendix C: Cross References of Heuristics 啟髮式交叉參考 Epilogue 結束語