知识卡片
架构的两个共识点,与其主观性本质
内容
“架构”这个词被滥用得很厉害,各种定义很难统一,但能够达成共识的只有两点:一是”最高层次的系统分解”,二是”系统中不易改变的决定”。Ralph Johnson进一步指出,架构本质上是一种主观的东西——是专家级项目开发人员对系统设计形成的可共享理解,通常表现为系统的主要组成部分及其交互关系,还包括一批开发者希望尽早做出、因为难以改变而显得重要的决定。这个定义揭示了架构判断的一个反直觉之处:架构的主观性正来自于”难以改变”这个标准本身是会变化的——如果后来发现某个决定并不像当初想象的那么难以改变,它就不再被认为与架构相关。这意味着判断”这算不算架构层面的决定”,本质上是在问”这件事以后改起来有多痛”,而不是这件事本身听起来有多”高大上”;同一个决定,在资源紧张、迭代成本高的团队里可能是架构级决定,换一个环境下可能就只是普通设计决定。
参考来源
- 位置:《企业应用架构模式》"引言"之"0.1 架构"(源文件:_epub-src/OEBPS/Text/000006.html)
- 结论依据:原文说明"很多人都试图给'架构'下定义……能够统一的内容有两点:一点是'最高层次的系统分解';另一点是'系统中不易改变的决定'",并引用Ralph Johnson"架构的主观性也来源于此——如果你发现某些决定并不像你想像的那么难以改变,那么它就不再与架构相关",直接支撑本卡结论。
- 原始内容:能够统一的内容有两点:一点是"最高层次的系统分解";另一点是"系统中不易改变的决定"……架构的主观性也来源于此——如果你发现某些决定并不像你想像的那么难以改变,那么它就不再与架构相关