知识卡片
三种软件架构处理方式总览
内容
开发者对待架构有三种递进的方式:架构无关的设计(不主动选架构,靠推定架构或历史沿用)、专注架构的设计(审慎挑选适配目标的架构,但不保证目标一定达成)、提升架构的设计(把目标本身内嵌进架构机制,开发者无需再写代码去实现它)。以”响应时间需50毫秒内”为例:架构无关可能沿用旧的分布式架构导致消息传递就耗尽大半时间;专注架构会主动选客户端-服务器架构留出40毫秒处理时间;提升架构则会设计出遇到峰值自动补充服务器算力的机制,让”满足50毫秒”这件事由架构机制而非某段业务代码负责。三者的车辆安全类比:无安全带→装了安全带但要记得系→安全气囊自动弹出。
结构图:
flowchart LR
A["架构无关的设计<br/>不主动选架构<br/>例:没有安全带的皮卡"] --> B["专注架构的设计<br/>审慎挑选适配架构<br/>例:装了安全带的轿车"]
B --> C["提升架构的设计<br/>目标内嵌进架构机制<br/>例:自动弹出的安全气囊"]
参考来源
- 位置:《恰如其分的软件架构》第2章《软件架构》2.5节《如何运用软件架构?》、2.8节《提升架构的设计》(源文件:_epub-src/OEBPS/text00019.html, text00022.html)
- 结论依据:原文用汽车安全带/气囊类比区分三种设计方式的本质差异,并用"50毫秒响应时间"需求在三种方式下的不同实现路径具体说明区别。
- 原始内容:架构无关的设计……专注架构的设计……提升架构的设计……此方式专注于架构的设计,开发者以保证系统的某一目标或属性为目的去设计架构。一旦某个目标或属性被提升至架构之中,开发者就无须再写任何代码去实现它。