@levinzhang
2022-06-26T07:32:27.000000Z
字数 1340
阅读 392
by
Amazon Web Services发布了使用架构决策记录(architecture decision record,ADR)的指南。他们推荐了一个在软件工程团队中采用和审查ADR的过程,这个过程的结果是包含已批准、已拒绝和已废弃的ADR集合的决策记录。
Amazon Web Services发布了使用架构决策记录(architecture decision record,ADR)的指南。他们推荐了一个在软件工程团队中采用和审查ADR的过程,这个过程的结果是包含已批准、已拒绝和已废弃的ADR集合的决策记录。
AWS提出该ADR过程的目的是改善架构决策,避免对相同主题的重复性讨论,并有效地对决策进行沟通。
ADR是一个简短的文档,描述了会影响软件架构的团队决策。它不仅包含决策,还包含了相关的背景和影响。一组ADR组成了一个决策日志,它提供了关于项目或产品的更广泛的背景、设计信息和实现细节。
ADR过程中,最常见的输入是需要在架构方面进行重大决策的功能性或非功能性需求。发现了这种决策的任何团队成员都应该创建一个ADR。使用模板可以简化ADR的创建,并且能够确保它会捕获所有相关的信息。
按照AWS的指南,创建ADR的团队成员也是该ADR的所有者,要负责维护和交流它的内容。在初始阶段,ADR所有者会提供一个“proposed”状态的ADR,这意味着它可以进行审查了。随后,ADR所有者要安排一个团队会议,以审查并决定该ADR要被批准、返工还是拒绝。
如果团队发现该ADR需要改进的话,它会依然保持“proposed”状态,所有者和其他团队成员会对其进行优化。否则的话,ADR的状态将会变为“accepted”或“rejected”,ADR就不可改变了。如果团队需要更新这个决策的话,那应该提出一个新的ADR,当该ADR被批准后,会取代之前的ADR。
下图展示了ADR的创建、所有权和采用的过程。
AWS建议,ADR应该有一个变更历史。一旦ADR被批准或拒绝,它就应该被认为是不可改变的。如果团队批准了一个新的ADR,并且该ADR取代或更新了以前的决策,ADR的所有者应该将旧ADR的状态变更为“superseded”。如果新的ADR 被拒绝了,则不需要对旧的ADR进行任何改变。
下图显示了ADR的更新过程。
决策日志会随着时间的推移而增长,它会提供团队所做出的所有决策的历史。例如,在代码或架构审查期间,团队可以使用决策日志作为参考,以验证变更是否符合商定的决策,或者是否需要创建一个新的ADR。