- 分布式系统架构:架构策略与难题求解
- (美)尼尔·福特等
- 426字
- 2023-11-02 19:40:51
1.4 架构决策记录
记录架构决策的最有效方式之一是通过架构决策记录(ADR;https://adr.github.io)。ADR源自Michael Nygard的一篇博客(https://oreil.ly/yDcU2),后来被Thoughtworks Technology Radar(https://oreil.ly/0nwHw)评定为“采纳”。一份ADR由一个简短的文本文件构成(通常只有一两页长),描述一个具体的架构决策。虽然ADR可以使用纯文本编写,但人们通常会使用文本文档格式,例如AsciiDoc(http://asciidoc.org)或Markdown(https://www.markdownguide.org)。ADR也可以使用wiki页面模板来编写。在Fundamentals of Software Architecture(O'Reilly)一书中,我们用整整一章来介绍ADR。
我们将使用ADR来记录本书中的各种架构决策。对于每一个架构决策,我们将使用如下的ADR格式:
ADR:包含架构决策的简短名词短语
上下文(context)
在该部分,我们会加一两句话来描述它所要解决的问题,并罗列可选的解决方案。
决策(decision)
我们将在这里详述架构决策,并解释为什么这样做。
后果(consequence)
该部分会列举采用这个架构决策后产生的影响,并讨论为此考虑的权衡。
对架构师来说,记录决策是重要的,但保证决策被正确地执行则更加重要。幸运的是,现代工程实践使得我们可以通过架构适应度函数(architecture fitness function)来自动化很多常见的治理问题。