知识卡片
用简化近似方案代替等待完美设计
内容
面对团队完全没有经验的复杂问题(如线性规划求解),与其等彻底理解后再动手,不如先搭一个用简单 启发式规则拼凑的”傻瓜版”方案——它给不出最优解,却能让团队对最终产品该长什么样有真实直觉。 关键工程手法是提前把这个简化方案的接口和系统其余部分解耦,让它未来能被更聪明的实现直接替换, 而不影响其他组件。面对需求本身不确定的领域,同样应把易变部分设计得更抽象、更模块化,用统一 接口封装细节。
参考来源
- 位置:《SRE:Google运维解密》第18章《SRE部门中的软件工程实践》(源文件:_epub-src/OEBPS/Text/0009_0009.xhtml)
- 结论依据:原文以 Auxon 团队缺乏线性规划经验为例,说明先构建"傻瓜求解器"用简单启发逻辑处理
请求,并将求解器接口与系统其余部分抽象分离,使得后续可用更聪明的求解器直接替换;对自动化
对接等不确定需求,也采用了更抽象通用的模块化设计。
- 原始内容:“为了解决团队对这个问题的困惑,我们一开始选择构建一个简化版的Auxon求解器(称之为
傻瓜求解器)……在开发傻瓜求解器的时候,整个求解器接口和Auxon之间是抽象分离的,这样求解器的
具体实现可以随后改变,而不会影响其他的Auxon组件。”