架构之美随笔五------语言与架构

  “美”作为软件架构的口号,并不是由旁观者来判定的。其实早就存在一些明确的标准。

  可靠性 该架构能否帮助我们创建出正确、健壮的软件。

  可扩展性 应对变化是否很容易。

  复用性 该解决方案是否具有同样性,或者甚至可以将其作为一个组件直接插入到新的应用程序中,而无需做定制开发。

  这部分内容,作者从之前所概括的软件架构评价标准入手,对面向对象和面向函数两种方法进行比较。从反方向来论证它们之间的关系:面向对象的架构融合了函数式编程的思想,特别是吸纳了诸如Eiffel中的代理之类的新技术之后,在保留了其优点的同时克服了其缺点。要证明这些发现是否合格,作者提出了几点限制:

  缺少的数据点、细节不足、具体关注以及实验者的偏见。

  面向对象视图

  组合子很好,单类型更好:到目前为止,我们处理的都是操作和组合子。操作我们将保留,而关键是抛弃组合子并将它们替换为类型。它将明显的提升抽象等级。

  面向对象方法对于模块性目标的最本质贡献是继承。继承采用了“分类法”组织类,大概可以表示为“is-a”关系,类之间的基本关系还有一种名为“客户”的关系,它表示某类将通过其API来使用该类。

  面向对象模块性的评价和改进

  复用操作:使用继承的原则之一是将公共性放在可应用的最高等级上,这样子孙类中就无需重复它们;也就是说继承关系就是“as is”。

  可扩展性:添加类型

  可扩展性:添加操作

  

  在第十四章,"重读经典"作者提到所有东西都是对象。今天流行的面向对象计算机语言并不是纯面向对象的。这章作者主要通过大量的实例让我们了解哪些经典的“架构”。

  

posted @ 2017-02-15 20:20  A.G不是飞人  阅读(167)  评论(0编辑  收藏  举报