知识卡片

简单原则——结构复杂度会降低可用性并拖慢定位问题

普通读书笔记卡 · 1658.a

内容

软件领域”复杂”不像制造业代表先进,而是代表问题。结构复杂性(组件多、关系多)带来三个代价:组件越多整体可用性越低(单组件故障率10%,3个组件系统可用性约72.9%,5个降到59%,概率相乘所致);改动一个组件连锁影响关联组件,协调成本高;故障定位更难,异常表现的组件未必是病灶。结构和逻辑复杂性(单组件塞太多功能)都要警惕,简单方案够用时应优先于复杂方案,这正是 KISS 原则在架构层面的体现。

参考来源

- 位置:《从0开始学架构》第10章《08|架构设计三原则》"简单原则"一节(源文件:_epub-src/OEBPS/Text/part0009_split_002.html) - 结论依据:原文给出精确计算"假设组件的故障率是10%……那么有3个组件的系统可用性是……72.9%,有5个组件的系统可用性是……59%,两者的可用性相差13%",直接支撑本卡片"组件越多整体可用性越低"的量化结论。 - 原始内容:结构上的复杂性存在的第一个问题是,组件越多,就越有可能其中某个组件出现故障,从而导致系统故障……有3个组件的系统可用性是(1-10%)×(1-10%)×(1-10%)= 72.9%,有5个组件的系统可用性是……59%,两者的可用性相差13%。