知识卡片

最小计划式设计与必要张力

普通读书笔记卡 · 1958.a.19.a

内容

最小计划式设计介于[[计划式设计的适用场景]]和[[演进式设计的能力与局限]]之间:先做少量初始计划式设计处理最大风险(如建立性能预算),其余交给演进式设计(Fowler估算自己约20%计划式+80%演进式)。这体现”必要张力”:前期长时间架构设计能确保全局属性、避免死胡同,代价是可能犯下本可延后规避的错误;团队越擅长重构/TDD,越能承担更多演进式设计比例。三种风格区别只是设计时间点不同。

参考来源

- 位置:《恰如其分的软件架构》第3章《风险驱动模型》3.7节《计划式设计与演进式设计》(源文件:_epub-src/OEBPS/text00033.html) - 结论依据:原文引用Fowler"20%计划式设计+80%演进式设计"的估算,说明最小计划式设计是二者的组合,并明确提出计划式与演进式设计之间存在"必要的张力"——早期设计的全局收益与延后决策规避错误的代价互相制约。 - 原始内容:Martin Fowler对此作了估算,他说自己大概会做20%的计划式设计和80%的演进式设计……计划式设计与演进式设计之间存在的必要的张力(essential tension)是:若一开始进行长时间的架构设计,就有机会确保全局属性……然而,这么做的代价就是有可能犯错。