知识卡片
引入约束的四步流程
内容
约束不是任意限制,而是像导轨一样引导系统朝预期方向前进,还能带来”分析”能力——100行无约束代码几乎无法回答它多快、是否安全,Android式权限声明约束能让这些问题变得可回答。引入约束的建议流程:①从无约束假设开始;②明确系统目标;③自问怎样会做不到目标、约束能否带来成功、是否麻烦、权衡是什么;④决定是否强加约束以保证某项特性。多数情况下最终会落到选择约束相对温和的架构风格。
参考来源
- 位置:《恰如其分的软件架构》第16章《结论》16.4节《使用导轨一样的约束》(源文件:_epub-src/OEBPS/text00177.html)
- 结论依据:原文说明约束除了控制系统方向外还赋予分析系统的能力(以Android权限约束为例),并给出从无约束开始、明确目标、自问权衡问题、决定是否强加约束的四步流程。
- 原始内容:如果你有100行没有约束的代码,它们会做些什么?基本上可以做任何事。……(1) 从无约束开始。(2) 决定系统的目标是什么。……(3) 问自己几个困难的、关于如何实现这些目标的问题。……(4) 最后,你可能决定强加约束来提升或保证一个预期的特性、质量或风险。