系统架构设计

核心思想原则

分治法

即分而治之。

将庞大的计算、存储压力向下级分摊。又可以看做是去中心化的一种实践方式。

数据中心只承担一些核心数据的存储工作;每个服务器都可以存储部分非通用的数据,承担部分的计算及负载压力。下级路由、智能终端设备、智能移动设备等,都可以分摊服务器的压力。

高内聚,低耦合

耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。

对外低耦合,对内高内聚

有个例子很容易明白:

一个程序有50个函数,这个程序执行得非常好;然而一旦你修改其中一个函数,其他49个函数都需要做修改,这就是高耦合的后果。一旦你理解了它,你编写概要设计的时候设计类或者模块自然会考虑到“高内聚,低耦合”。

  1. 耦合、内聚的评估标准是强度,耦合越弱越好,内聚越强越好;
  2. 所谓过度指的是由于错误理解导致的效果相反的设计;
  3. 耦合指的模块之间的关系,最弱的耦合设计是通过一个主控模块来协调n个模块之间的运作。还是举一个我举过的例子:客户要求在界面上增加一个字段,你的项目要修改几个地方呢?如果你只要修改项目文档,那么你的开发构架就是最低强度的耦合,而这种设计 成熟的开发团队都已经做到了,他们使用开发工具通过项目模型驱动数据库和各层次的代码,而不是直接修改那些代码;
  4. 内聚指的是模块内部的功能,最强的内聚就是功能单一到不能拆分,也就是原子化;
  5. 所以强内聚和弱耦合是相辅相成的,一个良好的设计是由若干个强内聚模块以弱耦合的方式组装起来的。

前后端分离

参考资料:

注意点: 前后端分离不单指Web的前后端,也包括客户端(前)和服务器(后)的分离。