技术开发 频道

敏捷思维:进一步阅读(结篇)

【IT168 技术文章】

    敏捷架构设计一文到目前已经全部结束,由于架构设计是一个很大的话题,要在一篇文章中完全把架构设计讲清楚是很难的。因此本文的最后一个章节中提供了一组书籍和文章,这些资料都和架构设计有关,本文的写作过程也从中获益良多,故而推荐给有兴趣的读者。

    Refactoring To Patterns(Joshua Kerievsky)

    勿庸置疑,模式是软件设计的一种有效的工具。但是在将模式和现实中的软件设计关联起来时,很多人往往迷惑于模式到底是如何应用的。结果是表现出两种极端:一是用不好模式,二是过度的滥用模式。模式是他人设计经验的总结,但是它在提供优秀的设计思路的同时也会增加一定的复杂性。因此,不了解模式应用的上下文环境而错误的使用模式是非常危险的。不但达不到原先的效果,而且会导致设计难以理解和设计团队沟通的困难。文章一开始,作者就批评了滥用模式的做法。那么,到底要怎样才算是正确的使用模式呢?作者借鉴了Martin Fowler的重构方法。通过实际的例子,讨论如何把一个普通的、不够灵活、不具备扩展性的设计重构为一个优美的设计模式。因此,本文的核心在于,如何识别哪些设计需要重构?如何判断重构的时机?如何评价重构前后的优缺点?以及,如何进行重构?

    Effective Java(Joshua Bloch)

    此书的定位于编程习惯(Idiom)和良好的OO思维上。任何的设计都无法脱离最终的代码。因此,擅长于架构设计的设计师一定也拥有浑厚的编码功力。优秀的软件过程是由大量优秀的实践拚接而成,架构设计也是一样的,它是由大量的代码级的实践累积起来的。此外,本书的很多讨论都是关于如何进行一个优秀的OO设计的。在本文中,我们很多关于具体设计的讨论都是基于OO设计的,在稳定化模式中我们也讨论了OO设计优秀之处。因此,在了解架构设计的基本思路后,阅读此书,你可以进一步的了解和强化OO架构的设计思路。顺便一提,本书的中文版即将面世。

    Writing Effective Use Case(Alistair Cockburn)

    文如其名,本书主要介绍了如何编写用例的知识。在架构设计中,我们不断的强调需求的重要性,可以说,没有需求,就没有架构。那么,需求应该如何组织呢?用例就是一种不错的需求组织方式,注意,用例并不能够完全代替需求,类似于业务流程、非功能需求之类的需求都不是用例所擅长的。本书的精华就在于它完整的介绍了叙述型用例的各个方面,从用例的范围、角色、层次等方面描述了用例的构成,并讨论了用例的很多相关知识。更为宝贵的是,本书中包含了大量的实例。相较一些介绍用例图的书而言,本书的定位更加的实践化。一个优秀的需求的价值在于,它能够很容易的转换为软件开发过程中其它实践所需要的工件。如果我们仔细的体悟本书的话,我们会发现书中的很多思路都是基于此的。本书在市面上可以找到中文版和英文版两种版本。

    Thinking in Patterns(Bruce Eckel)

    Bruce Eckel 的另外两本书《Thinking in C++》和《Thinking in Java》可以说是非常的出名。后者更是有三个版本,前两个版本都有中文译本,候捷老师更是亲自翻译了第二个版本,第三个版本目前正在写作中,从Bruce Eckel的网站上可以下载到。《Thinking in Patterns》目前也仍然处于写作中,但已经略具规模了。Bruce Eckel从不同的应用角度来讨论模式之间的不同以及模式的内涵。例如,对工厂模式的讨论是从封装对象创建的角度开始讨论的,对适配器模式的讨论则是从改变接口的角度开始讨论的。模式的关键在于应用,阅读本书,你能够体会到这一点。

    Java 与模式(阎宏)如果说上述的一些好文都出自国外专家之手,那么这本书就是绝对的中文原创。本书的重点是讨论隐藏在模式背后的面向对象规律,并一一对各种设计模式进行分析和实例研讨。使用很多有趣的例子和运用哲学思维来解释模式是本书的两大特色。在阅读该书的时候,请注意区分技术细节和框架代码。设计模式的好处就在于能够根据上下文环境,设计出一个具有灵活性、扩展性、低耦合度的框架来。这和架构设计的思路是一样的,不要在软件开发过程的早期考虑太多的细节。

    Patterns of Enterprise Application Architecture(Martin Fowler)

    这是一本绝对的讨论架构设计模式的书了,但这里的架构是特指企业信息系统的架构,这和本文讨论的问题域是一样的。根据三层结构的理论,本书的模式大致可以分为5类:表示层模式、逻辑层模式、数据层模式、分布式模式、以及一些基础的模式。书的早期版本采用了这种分类法,在出版之后,模式的分类进一步细化。例如数据层模式就被进一步的区分为数据源架构模式、对象-关系行为模式、对象-关系结构模式、对象-关系元数据映射模式等。本书的内容覆盖面很广,Martin Fowler在素材的组织上拥有非常优异的才能,当年的《重构》一书就是这方面的例证。阅读本书,你会对架构设计的技术层面有着很深的了解,但是,应该注意,书中的一些模式虽然看起来简单,但是如果要真正实现,却需要花费大量的精力,因此,听从《Refactoring To Patterns》一书和本文重构模式的建议吧,只有在需要的时候才把设计重构为模式。

0
相关文章