1 分钟阅读
你的 Bug 可能正是别人的功能
软件工程的魔幻定律(11)
Part IV-I:质量、维护与演化
Lehman’s Laws:软件的熵增是不可逆的
Meir Lehman 在 1970-1980 年代通过研究大型软件系统,总结出了一系列关于软件演化的规律,其中最核心的两条是:
- 持续变化定律:与真实世界交互的系统必须持续演化,否则就会变得越来越不满足需求。
- 复杂度增长定律:随着系统演化,其复杂度会持续增加,除非有明确的投入来降低它。
这两条定律放在一起,描述了软件维护的根本困境:你必须改变系统,但每次改变都会增加复杂度。不改,系统腐烂;改,系统变复杂。唯一的出路是持续的重构投入,把复杂度的增长速度控制在可接受范围内。
这也是技术债(Technical Debt)概念的理论基础:它不是 “以后再还” 的可选项,而是系统演化的自然代价,需要被纳入日常开发的预算里。