# 系统架构设计 ## 核心思想原则 ### 分治法 即分而治之。 将庞大的计算、存储压力向下级分摊。又可以看做是去中心化的一种实践方式。 数据中心只承担一些核心数据的存储工作;每个服务器都可以存储部分非通用的数据,承担部分的计算及负载压力。下级路由、智能终端设备、智能移动设备等,都可以分摊服务器的压力。 ### 高内聚,低耦合 耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。 ***对外***低耦合,***对内***高内聚 有个例子很容易明白: > 一个程序有50个函数,这个程序执行得非常好;然而一旦你修改其中一个函数,其他49个函数都需要做修改,这就是高耦合的后果。一旦你理解了它,你编写概要设计的时候设计类或者模块自然会考虑到“高内聚,低耦合”。 1. 耦合、内聚的评估标准是***强度***,耦合越弱越好,内聚越强越好; 2. 所谓***过度***指的是由于错误理解导致的效果相反的设计; 3. *耦合指的模块之间的关系*,最弱的耦合设计是通过一个主控模块来协调n个模块之间的运作。还是举一个我举过的例子:客户要求在界面上增加一个字段,你的项目要修改几个地方呢?如果你只要修改项目文档,那么你的开发构架就是最低强度的耦合,而这种设计 成熟的开发团队都已经做到了,他们使用开发工具通过项目模型驱动数据库和各层次的代码,而不是直接修改那些代码; 4. *内聚指的是模块内部的功能*,最强的内聚就是功能单一到不能拆分,也就是原子化; 5. 所以***强内聚和弱耦合是相辅相成的,一个良好的设计是由若干个强内聚模块以弱耦合的方式组装起来的。*** ### 前后端分离 参考资料: * * 注意点: 前后端分离不单指Web的前后端,也包括客户端(前)和服务器(后)的分离。