要想成为一名优秀的软件开发人员,需要熟练应用编程语言和开发工具,更重要的是能够领悟优美代码背后的原则和前人总结的经验——这正是本书的主题。本书凝聚了世界级软件开发大师Robet C.Matin数十年软件开发和培训经验,Java版曾荣获计算机图书最高荣誉——Jolt大奖,是广受推崇的经典著作。自出版以来一直畅销不衰。
不要被书名误导了,本书不是那种以开发过程为主题的敏捷软件开发类图书。在书中,作者延续了自己一贯的写作风格,让你亲历现场,并用幽默亲切的语言和插图,通过一步步展示来自开发一线的代码,分析各种设计决策及其得失,以清晰、易于理解的方式讲述了真实程序设计中最基本然而也是最难做到正确应用的原则(包括SRP、LSP、OCP、DIP、ISP等类设计原则,以及多个包设计原则)与设计模式(不限于GoF经典模式,包括许多作者自己的成果)。
本书不仅是一部深入浅出、生动易懂的面向对象原则与设计模式著作,而且还是一部通俗的敏捷方法导引书和快速实用的UML教程。通过本书你会发现,许多以前看起来非常枯燥费解的概念,忽然间都豁然开朗,变得鲜活生动起来。
本书中,享誉全球的软件开发专家和软件工程大师Robert C.Martin深入而生动地使用真实案例讲解了面向对象基本原则、重要的设计模式、UML和敏捷实践等程序员必备的知识。
本书于2003年荣获第13届Jolt大奖,是C++和Java程序员提高自身水平的绝佳教材,也适于用作高校计算机、软件工程专业相关课程的教材或参考书。
第一部分 敏捷开发
第1章 敏捷实践
1.1 敏捷联盟
1.1.1 人和交互重于过程和工具
1.1.2 可以工作的软件重于面面俱到的文档
1.1.3 客户合作重于合同谈判
1.1.4 随时应对变化重于遵循计划
1.2 原则
1.3 结论
1.4 参考文献
第2章 极限编程概述
第3章 计划
第4章 测试
第5章 重构
第6章 一次编程实践
第二部分 敏捷设计
第7章 什么是敏捷设计
第8章 SRP:单一职责原则
第9章 OCP:开放-封闭原则
第10章 LSP:Liskov替换原则
第11章 DIP:依赖倒置原则
第12章 ISP:接口隔离原则
第13章 C#程序员UML概观
第14章 使用UML
第15章 状态图
第16章 对象图
第17章 用例
第18章 顺序图
第19章 类图
第20章 咖啡的启示
第三部分 薪水支付案例研究
第21章 COMMAND模式和ACTIVE OBJECT模式:多功能与多任务
第22章 TEMPLATE METHOD模式和STRATEGY模式:继承和委托
第23章 FACADE模式和MEDIATOR模式
第24章 SINGLETON模式和MONOSTATE模式
第25章 NULL OBJECT模式
第26章 薪水支付案例研究:第一次迭代开始
第27章 薪水支付案例研究:实现
第四部分 打包薪水支付系统
第28章 包和组件的设计原则
第29章 FACTORY模式
第30章 薪水支付案例研究:包分析
第31章 COMPOSITE模式
第32章 OBSERVER——演化至模式
第33章 ABSTRACT SERVER模式、 ADAPTER模式和BRIDGE模式
第34章 PROXY模式和GATEWAY模式:管理第三方API
第35章 VISITOR模式
第36章 STATE模式
第37章 薪水支付案例研究:数据库
第38章 薪水支付系统用户界面:Model-View-Presenter
附录A 双公司记
Rufus公司:“日落”项目
Rupert工业公司:“朝晖”项目
附录B 什么是软件
索引