本书不是那种以开发过程为主题的敏捷软件开发类图书。在书中,作者延续了自己一贯的写作风格,让你亲历现场,并用幽默亲切的语言和插图,通过一步步展示来自开发一线的代码,分析各种设计决策及其得失,以清晰、易于理解的方式讲述了真实程序设计中最基本然而也是最难以琢磨、正确应用的原则(包括SRP、LSP、OCP、DIP、ISP等类设计原则.以及多个包设计原则)与设计模式(不限于GoF经典模式,包括许多作者自己的成果)。
本书不仅是一部深入浅出、生动易懂的面向对象原则与设计模式著作,而且还是一部通俗的敏捷方法导引书和快速实用的UML教程。通过本书你会发现,许多以前看起来非常枯燥费解的概念,忽然间都豁然开朗,变得鲜活生动起来。
本书中,享誉全球的软件开发专家和软件工程大师Robert C.Martin深入而生动地使用真实案例讲解了面向对象基本原则、重要的设计模式、UML和敏捷实践等程序员必备的知识。
本书于2003年荣获第13届Jolt大奖,是C++和Java程序员提高自身水平的绝佳教材,也适于用作高校计算机、软件工程专业相关课程的教材或参考书。
Section 1 Agile Development敏捷开发
Chaper 1 Agile Practices敏捷实践
The Agile Alliance敏捷联盟
The Manifesto of the Agile Alliance敏捷联盟宣言
Principles敏捷原则
Conclusion结论
Bibliography参考文献
Chaper 2 Overview of Extreme Programming极限编程概述
The Practices ofExtreme Programming极限编程的实践
Customer Team Member客户团队成员
User Stories用户故事
Short Cycles短交付周期
Acceptance Tests验收测试
Pair Programming结队编程
Test Driven Development测试驱动开发
Collective Ownership集体昕有权
Continuous Integration持续集成
Sustainable Pace可持续的开发速度
Open Workspace开放工作空间
The Planning Game计划游戏
Simple Design简单设计
Refactoring重构
Metaphor隐喻
Conclusion结论
Bibliography参考文献
Chapter 3 Planning计划
Initial Exploration初始探索
Spiking,Splitting,and Velocity探究、分解和速度
Release Planning发布计划
Iteration Planning迭代计划
Task Planning任务计划
The Halfway Point迭代中点
Iterating迭代
Conclusion结论
Bibliography参考文献
Chapter 4 Testing测试
Test Driven Development测试驱动开发
An Example of Test-First Design测试优先设计的例子
Test Isolation测试促进隔离
Serendipitous Decoupling意外获得的解耦合
Acceptance Tests验收测试
Example of Acceptance Testing验收测试示例
Serendipitous Architecture意外获得的架构
Conclusion 结论
Bibliography参考文献
Chapter 5 Refactoring重构
Generating Primes:A Simple Example of Refactoring素数产生程序:一个简单的重构示例
The Final Reread最后审视
Conclusion结论
Bibliography参考文献
Chapter 6 A Programming Episode一次编程实践
The Bowling Game保龄球比赛
Conclusion结论
Section 2 Agile Design敏捷设计
Chapter 7 What Is Agile Design?什么是敏捷设计
Chapter 8 SRP:The Single-Responsibility Principle SRP:单一职责原则
Chapter 9 OCP:The Open-Closed Principle OCP:开放一封闭原则
Chapter 10 LSP:The Liskov Substitution Principle LSP:Liskov替换原则
Chapter 11 DIP:The Dependency-Inversion Principle DIP:依赖倒置原则
Chapter 12 ISP:The Interface-Segregation Principle ISP:接口隔离原则
Section 3 The Payroll Case Study薪酬系统案例研究
Chapter 13 COMMAND and ACTIVE 0BJECT COMMAND模式与ACTIVE OBJECT模式
Chapter 14 TEMPLATE METHOD&STRATEGY:Inheritance VS.Delegation TEMPLATE METHOD模式和STRATEGY模式:继承和委托
Chaper 15 FACADE and MEDIATOR FACADE模式和MEDlATOR模式
Chapter 16 SINGLETON and MONOSTATE SINGLETON模式和MONOSTATE模式
Chapter 17 NULL 0BJECT NULL OBJECT模式
Chapter 18 The Payroll Case Study:Iteration One Begins 薪酬系统案例研究:第一次迭代开始
Chapter 19 The Payroll Case Study:Implementation薪酬系统案例研究:实现
Section 4 Packaging the Payroll System打包薪酬系统
Chapter 20 Principles of Package Design包设计原则
Chapter 21 FACTORY FACTORY模式]
Chapter 22 The Payroll Case Study(Part 2)薪酬系统案例研究:第2部分
Section 5 The Weather Station Case Study气象站案例研究
Chapter23 COMPOSITE COMPOSITE模式
Chapter25 ABSTRACT SERVER,ADAPTER,and BRIDGE
Chapter26 PROXY and STAIRWAY TO HEAVEN:Managing Third Party APIs PROXY模式和GATEWAY模式:管理第三方APl
Chapter 27 Case Study:Weather Station案例研究:气象站软件
Section 6 The ETS Case Study ETS案例研究
Chapter 28 VISITOR VISITOR模式
Chapter 29 STATE STATE模式
Chapter 30 The ETS Framework ETS框架
Appendix A UML Notation Ⅰ:The CGI Example UML图示之一:CGI示例
Appendix B UML Notation Ⅱ:The STATMUX UML图示之二:STATMUX
Appendix C A Satire of Two Companies双公司记
Appendix D The Source Code Is the Design源代码就是设计
Index