复杂度来源:可扩展性

2018-07-27  本文已影响3人  空谷幽心

笔记

  1. 可扩展性指系统为了应对将来需求变化而提供的一种扩展能力,当有新的需求出现时,系统不需要或者仅需要少量修改就可以支持,无须整个系统重构或者重建。

  2. 提升可扩展性的方法:面向对象和设计模式。

  3. 设计具备良好可扩展性的系统,有两个基本条件:正确预测变化、完美封装变化。

  4. 软件系统与硬件或者建筑相比,有一个很大的差异:软件系统在发布后还可以不断地修改和演进,这就意味着不断有新的需求需要实现。

  5. 如果每个点都考虑可扩展性,架构师会不堪重负,架构设计也会异常庞大且最终无法落地。

  6. “预测”这个词,本身就暗示了不可能每次预测都是准确的。

  7. 预测变化的复杂性在于:

  1. 对于架构师来说,如何把握预测的程度和提升预测结果的准确性,是一件很复杂的事情,而且没有通用的标准可以简单套上去,更多是靠自己的经验、直觉。

  2. 预测变化是一回事,采取什么方案来应对变化,又是另外一个复杂的事情。

  3. 第一种应对变化的常见方案是将“变化”封装在一个“变化层”,将不变的部分封装在一个独立的“稳定层”。

  4. 第二种常见的应对变化的方案是提炼出一个“抽象层”和一个“实现层”。

上一篇下一篇

猜你喜欢

热点阅读