知识卡片

整体论的应用,及"形散神聚"的整体性规则

结构图卡

内容

[[还原论与整体论的核心分歧:整体等于部分之和吗|整体论]]在编程里的典型应用:面向对象编程把变量函数封装成有意义的整体,靠继承/实现/聚合/组合/依赖构建更大整体;集成测试揭示了”模块相加不等于整体”的事实——单元测试都通过了,集成测试依然会暴露模块间的交互问题,因为部分之间的相互作用会产生新的功能和特性;代码评审要求从整体维度找可复用部分、检查高内聚低耦合和循环依赖问题。在架构里的典型应用:架构设计与业务目标对齐(还原论式的拆分设计,必须始终服务于整体业务目标,缺乏整体目标时”拆分”本身就失去意义);非功能性需求要在技术架构设计完成后从系统整体层面再审视是否满足了最初目标;DDD方法本身就是整体论的层层构建——多个类关联成聚合,多个聚合放一起成限界上下文,多个限界上下文关联成子领域和领域,每高一层级都构成一个更大的整体,个体聚合后能实现个体单独无法起到的作用(1+1>2)。一个好的整体应该具备”形散神聚”的特征——”形散”指各模块/组件可以按功能特性精细化拆解设计,”神聚”指这些单元之间存在高度默契配合关系,通过有效优化达到全局最佳状态(就像足球队或乐队的协调配合);构成好整体有两条规则:一是个体间的关系要赋予整体新的功能或含义(整体比个体多出来的部分,恰恰取决于个体之间的关系本身);二是个体间的关系要尽可能简单易懂(适当分层聚类、层次间关系尽量单向、避免连接数过多导致个体失效引发整体性崩溃、避免循环依赖)。这两条规则也揭示了整体论与还原论的辩证关系:一个好的整体往往由许多小个体关联而成(整体论基于还原论),而整体论的规则又会反过来促使人们审视还原论中个体及关系是否合理(好的整体里,个体及关系通常呈现分层、对称、有向无环这些有序特征)。

结构图

flowchart TB
  W["好的整体='形散神聚'"]
  W --> F["形散:模块按功能特性精细拆解"]
  W --> S["神聚:高度默契配合,达到全局最佳"]
  R["整体性两条规则"]
  R --> R1["个体关系赋予整体新功能(1+1>2)"]
  R --> R2["个体关系尽量简单易懂(分层/单向/避免循环依赖)"]
  R2 -.辩证关系.-> D["整体论基于还原论,又反过来审视还原论个体关系是否有序"]

参考来源

- 位置:《架构师启示录:知识模型、落地方法与思维模式》第10章《底层思维模式》之"10.1.3 整体论在编程与架构中的应用"与"10.1.4 还原论和整体论的关注点"第2、3部分(源文件:_epub-src/EPUB/xhtml/chapter14.xhtml) - 结论依据:原文说明"一个好的整体应该具备'形散神聚'的特征……一种规则是个体间的关系要赋予整体新的功能或含义……另一种规则是个体间的关系要尽可能简单易懂……整体论是基于还原论的,即一个好的整体往往由许多小的个体关联而成", 直接支撑本卡关于整体论应用及"形散神聚"规则的结构图。 - 原始内容:测试中各个模块或子系统之间相加并不能等于整体,因为它们之间相互作用还会产生新的功能和特性。