各个实体之间的联系构成了系统,当你在研究一个系统的时候,如果你切分了其中某一部分拿出来研究
必定会切断,这部分与整体的联系,也就是破坏了整个系统!

必须从整体式理解一个系统

关于组件的知识对于整体上理解一个系统,作用非常有限,在某些情况下,这些知识甚至具有相反的效果

示例:

  1. 组件知识是局部的,而系统理解需要全局视角

  2. 组件是系统的一部分,但系统的行为不仅仅是组件的总和,还涉及它们之间的交互、架构模式、数据流、依赖关系等。
    只关注组件,容易忽略系统级别的设计,比如如何扩展、如何容错、如何保障一致性。
    局部最优 ≠ 全局最优

  3. 过度关注组件实现,可能会优化某个组件的性能或功能,但不一定符合整个系统的最佳实践。
    例如,一个高效的缓存组件如果没有考虑分布式一致性,可能会导致整个系统数据不一致。
    局部思维可能会误导系统设计

  4. 过分依赖某个组件,可能导致架构决策受限,比如:
    认为数据库事务可以解决所有一致性问题,而忽略了分布式事务的挑战。
    认为某个微服务框架很强大,而忽略了微服务本身的复杂性(如治理、监控等)。


关键是要有“系统思维”,知道什么时候关注细节,什么时候抬头看全局

系统展示出来的特性是做作为一个整体所拥有的特性,而不是任何一个部件所拥有的特性

自组织

保持高度有序状态,具有能量流,