知识卡片

规模扩张的指数级复杂度

普通读书笔记卡 · 1959.a

内容

软件规模不只取决于需求数量,更取决于需求功能点之间的耦合——函数副作用、类职责过多、代码热点被层层包裹、隐藏bug、例外场景各异、同步异步纠缠,都让”修改一处、牵一发动全身”。随着规模扩张,复杂度不是线性增长而是指数级增长,这正是软件”熵增”的体现:技术债无法避免,只能通过技术债列表等可视化手段让它可见并主动偿还,而非放任积累到临界点引发系统迅速步入”遗留系统”的衰亡期。

参考来源

- 位置:《解构领域驱动设计》第1章《软件复杂度剖析》1.2.1节《规模》(源文件:_epub-src/OEBPS/010.xhtml) - 结论依据:原文列举六种导致功能点耦合的具体代码现象,引用David Thomas与Andrew Hunt的熵增比喻和Ward Cunningham的技术债概念,说明规模扩张导致复杂度非线性增长并最终形成遗留系统。 - 原始内容:随着软件系统规模的扩张,软件复杂度也会增长。这种增长并非线性的,而是呈现出更加陡峭的指数级趋势。这实际上是软件的熵发挥着副作用……软件之所以无法躲避熵的重击,源于我们在构建软件时无法避免技术债。