最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

评论

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

电气设计软件有哪些?EPLAN让你成为专业工程师

智造软件

EPLAN 电器辅助设计 电气设计

HTTPS的安全体现在什么地方?

巨量HTTP

https HTTP

关于前端就业前景的一点看法

树上有只程序猿

前端 前端开发

Python数据结构5步入门

3D建模设计

Python 数据工程

为什么当下MES如此火热,各大制造业工厂都在推行?

万界星空科技

MES系统

NFT游戏模式开发,外包技术公司团队搭建

V\TG【ch3nguang】

基础设施SIG月度动态:「龙蜥大讲堂」基础设施系列专题分享完美收官,容器镜像构建 2.0 版本上线

OpenAnolis小助手

开源 容器 云原生 龙蜥社区 KeenTune

App Tamer for Mac(CPU智能控制管理) v2.8.1激活版

mac

苹果mac Windows软件 App Tamer 优化管理软件

OpenHarmony—应用间HSP开发指导

OpenHarmony开发者

OpenHarmony

购买国外站群服务器快速实现SEO优化效果

一只扑棱蛾子

站群服务器

Python数据科学入门

3D建模设计

Python 生成式AI

电子行业云MES解决方案

万界星空科技

MES系统

喜讯!广通优云两大产品入选软博会“年度优秀创新软件产品推广目录”

广通优云

算法AB实验平台进化历程和挑战

得物技术

后端 实验 企业号9月PK榜

建议收藏!Harmony应用配置文件概述(Stage模型)

HarmonyOS开发者

HarmonyOS

前端开发纷繁复杂,是否有更高效的开发方式?

高端章鱼哥

前端开发 低代码 低代码前端

使用LlamaIndex构建自己的PandasAI

3D建模设计

人工智能 ChatGPT

一文秒懂!腾讯云ES HTTPS 集群访问通信最佳实践

腾讯云大数据

ES

昇腾 AI 创新大赛2023河北区域赛成功举办,22支优秀团队脱颖而出

彭飞

夯实金融云基础设施底座,天翼云助力金融行业释放发展新活力

天翼云开发者社区

云计算 安全

专业HTML文本编辑器 BBEdit激活版+注册序列号

mac大玩家j

文本编辑器 Mac软件

Numpy和Pandas简介

3D建模设计

Python 数据科学

未来3-5年,前端开发往哪个方向发展更好就业?

互联网工科生

前端 前端开发 低代码

议题征集中| KCD 2023 杭州站,共话云原生技术

OpenAnolis小助手

云原生 杭州 龙蜥社区 议题征集 KCD

文心一言 VS 讯飞星火 VS chatgpt (90)-- 算法导论8.3 3题

福大大架构师每日一题

福大大架构师每日一题

YouTube音频提取 4K YouTube to MP3 for Mac激活中文

胖墩儿不胖y

Mac软件 音频提取工具 音频处理软件

Python 基础知识:语法、数据类型和控制结构

3D建模设计

Python 数据工程

工业互联网的破局密钥——低代码开发

力软低代码开发平台

“智算聚芯力 津彩新未来”天津市人工智能计算中心200P上线仪式暨天津人工智能应用创新论坛成功举办

彭飞

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