知识卡片

结构复杂度由质量属性驱动

普通读书笔记卡 · 1959.c

内容

系统结构复杂与否,多数情况下由质量属性要求决定:要高性能高并发就得引入缓存/并行处理/CDN/异步消息,要支持海量数据分析就得考虑分布式存储与计算。单体架构天然比微服务架构简单(如单细胞生物比人体简单),软件组织仍纷纷走向微服务化,根本原因也是质量属性驱动而非追求简单。但拆分不是免费的——分解后的元素间协同通信本身固有复杂度,若控制不好,这部分成本甚至会超过拆分带来的收益。

参考来源

- 位置:《解构领域驱动设计》第1章《软件复杂度剖析》1.2.2节《结构》(源文件:_epub-src/OEBPS/010.xhtml) - 结论依据:原文说明结构复杂度由质量属性决定,用单体与微服务的简单性类比生物结构,指出微服务化的驱动力是质量属性而非追求简单,并警告拆分后的通信协同复杂度可能超过分解收益。 - 原始内容:结构之所以变得复杂,多数情况下还是由系统的质量属性(quality attribute)决定的。……从系统结构的视角看,单体架构一定比微服务架构更简单……究其主因,还是系统的质量属性。……这些问题固有的复杂度甚至会在某些场景下超过分解带来的收益。