动机

软件开发的根本困难在于软件的本质复杂性。前面说到,复杂性主要体现在三个方面

  • 多样性:需要理解的事物的种类和数量太多
  • 耦合:事物往往不是孤立存在,而是相互耦合。要理解A,就要先理解B、C、D;修改了A,就要同时修改B、C、D。
  • 变化:变化总是会主动或被动发生。变化造成的影响通过耦合的传导可以传播得很深很远很广,甚至动摇根基。

因此,架构的动机主要有:

  • 减轻概念重量,防止认知过载:使得一个人在同一个时间段需要理解或处理的事物的数量足够少。
  • 局部化影响:将每一个变化所造成的影响限制在一个尽可能小的范围内。

本章后面介绍的原则和策略,其立足点都是出于上面的这些动机。

先解耦,再分解

results matching ""

    No results matching ""