写点什么

架构决策记录在 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:001802

评论

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

这么写简历,offer拿到手软,从业5年的软件测试工程师手把手教你写出满分简历

程序员暴龙

软件测试 简历优化 简历 就业 软件测试工程师

模块八作业

whoami

「架构实战营」

关于SaaS的内容营销策略(15/100)

hackstoic

营销 SaaS平台

Vue Router 手把手教你搭 Vue3 路由 - 卡拉云

蒋川

Vue Vue 3 vue cli

亿级数据量场景下,如何优化数据库分页查询方法

华为云开发者联盟

MySQL 缓存 查询 数据表 分页查询

建木持续集成平台v2.2.3发布

Jianmu

DevOps CI/CD 开源项目

架构实战营模块八作业

Jude

架构实战营

学生管理系统详细架构设计

Geek_8d5fe5

架构实战营

国内外好用的OKR管理工具有哪些?

爱吃小舅的鱼

资本热衷的垂直SaaS,如何能大有作为?

ToB行业头条

异步请求积压可视化|如何 1 分钟内快速定位函数计算积压问题

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算 FC

阿里云资深专家李国强:云原生的一些趋势和新方向

阿里巴巴云原生

阿里云 容器 微服务 云原生 趋势

要做需求管理?看这篇就够了。

石云升

产品经理 需求管理 需求分析 2月月更

最好用的 7 款 Vue admin 后台管理系统测评 - 卡拉云

蒋川

Vue Vue 3 vue cli

视频图像色彩增强的主要方法与落地实践

声网

Dev for Dev 视频技术 色彩增强

如何防止Arp攻击

喀拉峻

网络安全

网络安全必学渗透测试流程

网络安全学海

黑客 网络安全 信息安全 渗透测试 安全漏洞

网络安全kali渗透学习 web渗透入门 Metasploit基本使用方法

学神来啦

几纳米间风云:手机摄影的制高点争夺战

脑极体

掌握这20个JS技巧,做一个不加班的前端人

华为云开发者联盟

JavaScript 数组 箭头函数 逻辑运算符 计数器对象

详解基于机器学习的恶意代码检测技术

华为云开发者联盟

机器学习 深度学习 静态分析 恶意代码 恶意代码检测

2022中国化妆品行业发展趋势洞察

易观分析

化妆品行业

Hoo 交易所虎符研究院 ∣ 如何对NFT进行估值

区块链前沿News

NFT 虎符 Hoo 虎符交易所 虎符研究院

安全开采数据“富矿”:隐私计算基建的融合与进击

脑极体

java商城源码(servlet,springboot,html,vue,uniapp,小程序,android)一套任意组合

清风

计算机毕业设计 java商城 java商城源码 商城毕业设计源码

梦幻联动!金蝶&华为云面向大企业发布数据库联合解决方案

华为云开发者联盟

数据库 华为云 数据管理 GaussDB(for openGauss) 金蝶

微服务用户为什么要用云原生网关

阿里巴巴云原生

阿里云 Kubernetes 微服务 云原生网关

存储高性能、传输如闪电,焱融科技携手瑞云科技给你带来不一样的体验

焱融科技

云计算 分布式 云原生 高性能 文件存储

系统学习 TypeScript(四)——变量声明的初步学习

编程三昧

typescript 前端 2月月更

如何在 Vue 中使用 Chart.js - 手把手教你搭可视化数据图表

蒋川

Vue Vue 3

权威可信 | 华为云云测通过中国电子技术标准院软件测试工具能力评价

华为云开发者联盟

软件测试 测试 华为云 测试工具 华为云云测

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