简介

在本人的程序员生涯成长过程中,很多业界前辈的产品和书籍对我起着指路明灯的作用。分析方面有Martin Fowler的《分析模式》和Grady Booch的《Object-Oriented Analysis and Design with Applications》,设计方面有四人帮的《设计模式》、Martin Fowler的《企业应用架构模式》,以及模式社区的《面向模式的软件架构》五卷,实现方面有Martin Fowler的《重构》、Robert C. Martin的《代码简洁之道》、Kent Beck的《实现模式》……

在我读过的书籍中,Robert C. Martin——昵称Bob大叔——他的名著《敏捷软件开发:原则、模式、实践》对我的成长起着至关紧要的作用。从我个人的角度看,它比《设计模式》和《重构》还重要。这本书也影响着世界上的很多程序员,可以毫不夸张地说,我们目前的软件世界——包括优秀程序员和优秀产品——有很大一部分是Bob大叔的这本书塑造出来的。没有这本书,世界会大不一样。

《敏捷软件开发:原则、模式、实践》一书中最脍炙人口的部分就是对面向对象(OO)原则的彻底阐释。其中关于类设计的五条原则以其首字母的组合被合称为SOLID原则,现在已经成为OO开发的根本性准则。

由于种种原因,国内很多程序员重“术”“道”,平时的学习也是侧重于类库、框架、工具等实现技术,却很少磨练自己的设计思想,开发出来的产品往往只能在功能方面勉强达标,却在可读性、可维护性、可扩展性等内部质量方面多有欠缺。

如果我们能够深入理解掌握OO的原则,以及在它之下一层的设计模式,我们开发的产品质量必将得到巨大的提升。

由于有同事认为《敏捷软件开发:原则、模式、实践》一书还是比较深奥,不容易读懂。而且本书只对SOLID——面向类级别的五条原则——进行深入阐释,而对面向包级别的其他几条原则没有深入讲解。本人在多年的软件开发过程中对OO原则的体会较深,因此试图对每一个原则根据自己的理解和实践作进一步的阐述,期望能够对其他开发人员有所助益。当然由于水平有限,在文中一定会有错漏的地方,请大家认真鉴别,如果能够发现错误并回馈给我,将感激不尽。最后只有一句话:

光荣都属于Bob大叔,谬误都是我的责任。

香蕉皮和鸡蛋冲我来吧!