知识卡片

软件系统的熵增定律,及开放系统对抗熵增的机制

结构图卡

内容

“破窗效应”理论认为,环境中的不良现象如果被放任存在,会诱使人们效仿、甚至变本加厉——代码质量低的系统如果放任不管,通常不会变好而是越来越差,最终变成高维护成本的系统;这正是熵增定律的一个典型案例。熵增定律的定义是:”在一个孤立系统里,如果没有外力做功,它的总混乱度会不断增大”。但熵增定律并非适用于所有系统——目前的观点是只有大多数非生命系统符合熵增定律,这类系统总是自发趋于平衡态和无序状态,且这个过程不可逆;而生命体、社会、城市这类系统是开放系统,尽管内部产生的正熵(混乱度)持续增加,但系统本身也一直在与外界进行物质和能量交换,产生的负熵比正熵更大,抵消了正熵、让系统重新形成有序结构,这就是耗散结构理论的解释。物理学家哈肯用协同效应进一步解释了这个现象:一个系统从无序转为有序的关键,不在于它是平衡还是非平衡状态、也不在于离平衡态有多远,关键在于组成系统的各个子系统在特定条件下,通过彼此之间的非线性作用,在自发合作中形成稳定的有序结构——这说明系统变得有序,既可以依赖外部影响力(比如引入新资源、新规则),也可以通过内部子系统间的非线性作用(子系统自发协同)来促进有序状态的形成。可迁移启发:一个软件系统要长期维持有序,光靠”从外部引入更多资源/规则”这一条路是不够的——同样重要的是让系统内部的各个子系统(团队、模块、服务)之间建立起能自发协同的机制(比如统一的接口规范、共享的代码评审文化),这种内部自发形成的协同秩序,往往比单纯依靠外部管控更持久。

结构图

flowchart TB
  H["熵增定律:孤立系统总混乱度自发增大(不可逆)"]
  H --> N["非生命系统(大多适用)<br/>如放任不管的代码质量(破窗效应)"]
  H --> O["开放系统(生命体/社会/城市)"]
  O --> O1["耗散结构理论:与外界交换物质能量<br/>负熵>正熵→重新形成有序结构"]
  O --> O2["协同效应(哈肯):子系统间非线性作用<br/>自发合作形成稳定有序结构"]

参考来源

- 位置:《架构师启示录:知识模型、落地方法与思维模式》第9章《系统维护》之"9.3.1 软件系统也逃不脱的熵增定律"(源文件:_epub-src/EPUB/xhtml/chapter13.xhtml) - 结论依据:原文说明"'破窗效应'可以看作熵增定律的一个典型案例……在一个孤立系统里,如果没有外力做功,它的总混乱度会不断增大……系统本身也一直在与外界进行物质和能量的交换,并且它们产生的负熵比正熵更大……一个系统从无序转变为有序的关键……关键在于组成系统的各个子系统在特定条件下,通过它们之间的非线性作用,在自发合作中形成了稳定的有序结构", 直接支撑本卡关于熵增定律及开放系统对抗机制的结构图。 - 原始内容:这说明系统变得有序不仅可以依赖于外部影响力,通过内部子系统间的非线性作用也可以促进系统的有序状态的形成。