软件的复杂度
No related notes
Outlinks (0)
No outlinks found
Backlinks (0)
No backlinks found
1 · 软件的复杂度
S 业务成功驱动软件规模持续增长 C 偶然复杂度随团队扩大和赶工不断膨胀,侵蚀开发效率 Q 如何区分并控制软件的复杂度? A 识别本质 vs 偶然复杂,通过统一技术栈、一致命名与抽象、减少临时补丁来遏制偶然复杂度
软件复杂 = 本质复杂 + 偶然复杂
本质复杂来自业务本身,不可消弭;
偶然复杂来自实现方案和技术选择,常被组织和工程实践放大。
业务成功 -> 本质复杂度⬆ -> 支持业务,偶然复杂度⬆
团队规模扩大,更容易制造偶然复杂度(堆高认知负担):
- 赶上线的 flag/if,而不是调整设计
- 统一技术栈里面混入个人喜好的异构技术
- 同一领域在不同模块使用不同命名
如何控制复杂度(历史代码、技术选型、组织协作):统一技术栈、强化命名与抽象一致性、减少临时补丁式开发、重视问题空间理解