架构决策 (AD) 是一种合理的软件设计选择,旨在解决架构层面的功能性或非功能性需求。该决策记录在架构决策记录 (ADR) 中,其中详细记录了单个架构决策及其背后的原理。为了精简地捕获这些记录,我们发明了 Markdown 架构决策记录 (MADR):MADR 是一个精简的模板,用于以结构化的方式记录架构层面的重要决策。
架构决策(AD)是一种软件设计选择,旨在解决对架构至关重要的功能性或非功能性需求。例如,这可能是一项技术选择(例如,Java 与 JavaScript)、IDE 选择(例如,IntelliJ 与 Eclipse IDE)、库选择(例如,SLF4J与java.util.logging),或功能决策(例如,无限撤消与有限撤消)。不要过于认真地看待“架构”一词,也不要对其进行过分解读。正如示例所示,任何可能以某种方式影响架构的决策都是架构决策。
应该尽可能简单地 a) 写下决策和 b) 对决策进行版本控制。
关于哪些决策具有架构重要性,哪些决策不具有架构重要性,存在争议。我们认为任何(重要的)决策都应该以结构化的方式记录,因此我们提供了 MADR 模板来记录任何决策。
此存储库提供记录任何决策的解决方案。它提供使用Markdown 和架构决策记录来记录任何决策的文件。