大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

架构决策记录在 Spotify 的应用

  • 2020-05-13
  • 本文字数:862 字

    阅读完需:约 3 分钟

架构决策记录在Spotify的应用

Spotify 有多个团队使用架构决策记录(ADR)记录他们做出的各项决策。ADR 为 Spotify 带来了许多好处,包括改进新晋开发人员的入职管理,提升组织调整导致项目所有权移交的灵活性,改善团队之间关于最佳实践认知的一致性。


架构决策(AD)是一种软件设计选择,负责处理架构上很重要的功能性或非功能性需求。


由于其天生具备不断演进的特性,所以架构决策记录技术经常在敏捷环境中使用。正如敏捷专家 Michael Nygard 所描述的那样:


敏捷项目的架构必须以不同的方式进行描述和定义。并不是所有的决策都是一次做出的,也不是所有的决策都会在项目开始时完成。


架构决策记录包括可以帮助我们理解特定决策及其结果的上下文信息。此外,他们还可以记录没有做出的决策以及不这样决策的原因。


Spotify 工程师 Josef Blake 表示,决定何时编写 ADR 有时候并不容易,因为当一项决策对一个项目产生重大影响时,可能会存在多种理解方式。根据他的经验,至少在下述三种情况下编写 ADR。


首先,编写 ADR 来记录过去未记录的决策。这可以确保每个人都清楚地知道存在这项决策。


同样,如果做出了一项决策,而从来没有记录,那么它能成为标准吗?确定未记录的决策,一种方法是在同行评审期间引入竞争代码模式或库,从而引导审查者发现未记录的决策。


对于会对系统产生很大影响(例如会破坏 API)的更改,编写 ADR 是更改的最后一步。在这种情况下,Spotify 的工程师使用编写请求评议(RFC)的方法,促使所有利益相关者就一个共用的方法达成一致。一旦 RFC 过程完成,所商定的解决方案就会在 ADR 中记录。


不过,Blake 评论说,ADR 不应该只为具有重大影响的决策而编写。


未记录决策的代价很难衡量,但其影响通常包括重复工作(其他工程师试图解决相同的问题)或竞争性解决方案(两个做同样事情的第三方库)。


在这种情况下编写的 ADR 可以使情况变得不那么复杂。


架构决策记录决不是一种新技术。轻量级决策记录在ThoughtWorks的技术雷达上已经存在了好几年。如果你有兴趣尝试,可以在这个存储库中查找其他信息和开箱即用的模板。


原文链接:


Architecture Decision Records At Spotify


2020-05-13 09:001889

评论

发布
暂无评论
发现更多内容

Android开发两年:动脑学院2019android

android 程序员 移动开发

IM开发干货分享:万字长文,详解IM“消息“列表卡顿优化实践

JackJiang

即时通讯 IM

Android开发全套学习!享学课堂Android架构师课程

android 程序员 移动开发

Android开发者出路在哪,看完直接跪服

android 程序员 移动开发

Android开发入门教程!动脑Android

android 程序员 移动开发

Android开发实战,动脑学院android全套

android 程序员 移动开发

Android开发必须掌握!动脑学院android视频

android 程序员 移动开发

Android开发经典实战!享学课堂架构师vip百度云

android 程序员 移动开发

Android开发人员不得不收集的代码,2021年您应该知道的技术之一

android 程序员 移动开发

Android开发从零开始,动脑学院视频百度云

android 程序员 移动开发

Android开发必学:rxjava扔物线

android 程序员 移动开发

Android开发教程入门!动脑学院vip2019百度网盘

android 程序员 移动开发

Android开发必须要会!享学课堂Android架构师vip

android 程序员 移动开发

Android开发环境!android开发艺术探索pdf百度网盘

android 程序员 移动开发

Android开发必学:扔物线rxJava

android 程序员 移动开发

Android开发知识点!动脑学院android全套

android 程序员 移动开发

《软件开发的201个原则》(中译本)出版了

百度开发者中心

最佳实践 方法论 软件开发 新书推荐

Android开发必学,动脑学院课程值得买吗

android 程序员 移动开发

这9个单例被破坏的事故现场,你遇到过几个?

Tom弹架构

Java 架构 设计模式

Android开发者必须收藏的8个开源库,阿里蚂蚁金服五面

android 程序员 移动开发

Android开发者出路在哪,附大厂真题面经

android 程序员 移动开发

Android工程师跳槽经验分享,资深大牛带你了解源码

android 程序员 移动开发

Android开发两年:扔物线课程怎么样

android 程序员 移动开发

Android开发揭秘,扔物线课程怎么样

android 程序员 移动开发

Android开发社招面试解答之性能优化,阿里官方推荐

android 程序员 移动开发

Android开发核心知识笔记共2100页,统统给你解决

android 程序员 移动开发

新思科技:在智能网联汽车中构建软件安全性及可靠性

InfoQ_434670063458

新思科技 汽车软件安全

Android已死,享学课堂

android 程序员 移动开发

Android开发必会技术!动脑学院vip课程百度云

android 程序员 移动开发

终于有人把前端鉴权讲明白了

青云技术社区

云计算 云原生 大前端

Android开发教程入门!android开发艺术探索pdf百度网盘

android 程序员 移动开发

架构决策记录在Spotify的应用_架构_Sergio De Simone_InfoQ精选文章