跳至主要内容

ADR 是什么:为什么技术决策需要被记录

ADR 是什么:为什么技术决策需要被记录

摘要

ADR 是 Architecture Decision Record,通常指架构决策记录。它用简短文档记录一次重要技术决策的背景、选项、取舍和结果。ADR 的价值不是写文档本身,而是保存上下文,让未来的人知道当初为什么这样选。

技术决策会被遗忘

系统里有很多看起来奇怪的设计。

为什么不用另一个框架?为什么这个字段不能删?为什么发布流程分两步?为什么某个模块没有抽象?

如果没有记录,后来的人只能猜。

猜测会带来误解。

他们可能以为前人随便做,或者重复讨论已经比较过的方案。

ADR 要解决的,就是技术决策上下文丢失的问题。

ADR 记录什么

一份 ADR 不需要很长。

它通常记录几件事:

  • 背景:当时遇到什么问题。
  • 约束:时间、人力、系统、风险有哪些限制。
  • 选项:比较过哪些方案。
  • 决策:最后选择什么。
  • 后果:接受了什么代价,未来什么时候重新评估。

这些内容足够让后来的人理解决策环境。

ADR 不是论文,而是给未来维护者看的路标。

记录取舍比记录结论更重要

很多文档只写结论。

“我们选择方案 A。”

但真正有价值的是:为什么不是 B?为什么不是 C?当时我们接受了什么缺点?

技术决策很少是完美答案。

它通常是在约束下选择一个更合适的方案。

如果只记录结论,未来的人会看不见取舍。

记录取舍,才是 ADR 的核心价值。

ADR 适合记录哪些决策

不是每个小改动都需要 ADR。

适合记录的,通常是影响较大、未来难以逆转、涉及团队共识或长期维护的决策。

比如技术栈选择、数据存储方案、认证方式、发布流程、重要接口设计、模块边界。

如果一个决策未来有人可能问“为什么这样做”,它就值得记录。

ADR 的数量不必多,但关键决策要留下。

ADR 要保持简短

ADR 太长,就没人愿意写,也没人愿意读。

好的 ADR 应该简短、具体、可检索。

一页能说清,就不要写十页。

重点不是完整描述整个系统,而是记录这一次决策。

如果需要更多背景,可以链接到设计文档、需求文档或代码。

ADR 是决策索引,不是所有文档的替代品。

ADR 会帮助团队学习

时间久了,ADR 会形成团队的决策历史。

你能看到团队如何处理风险,如何权衡速度和质量,如何在不同阶段选择不同方案。

这对新人理解系统很有帮助。

也能帮助团队复盘:哪些决策后来证明有效,哪些决策需要调整。

ADR 不只是记录过去,也帮助未来做更好的决定。

结论

ADR 是什么?它是架构决策记录,用来保存重要技术决策的背景、选项、取舍和后果。

技术系统会变化,人员会流动,记忆会消失。

ADR 让后来的人不必重新猜测过去,也让团队能从自己的决策历史中学习。

延伸阅读

评论

此博客中的热门博文

尝试解构一段幽默

  天龙八部里有这么一段情节: 乌老大脸上肌肉牵搐,又“啊啊”了几声,突然指着虚竹骂道:“臭贼秃,瘟和尚,你十八代祖宗男的都是乌龟,女的都是娼妓,你日后绝子绝孙,生下儿子没屁股,生下女儿来三条胳臂四条腿……”越骂越奇,口沫横飞,当真愤怒已极,骂到后来牵动伤口,太过疼痛,这才住口。 虚竹叹道:“我是和尚,自然绝子绝孙,既然绝子绝孙了,有什么没屁股没胳臂的?”

《微信公开课》上张小龙的公开演讲

 微信是一款现象级的互联网产品,至少以互联网产品普遍的生命周期看来,微信是一款跨越了生命周期的互联网产品。要想理解微信在产品实践的一些观念,最好的方法莫过于直接和他们对话,阅读他们的书就是一种最直接的精神交流。 前几年流传着一本奇书《微信背后的产品观》,互联网产品从业者都给出了极高的评价,书里的内容大致上来自于 2012 年微信团队内部的一次分享会。而在现在,微信依然是一个具有生命力和健康生态的互联网产品,我们又该用什么方式来继续更新对微信的认识呢? 我的方法是:从微信张小龙过去几年的公开课中学习微信的产品观

你日常爱用的词语,竟有这么多在压抑自我!为什么“夹带私货”是一种很愚蠢的说法?所谓“精致利己主义者”其实很粗糙|心理|哲学|历史|自我成长