架构决策记录
对应的官方页面地址
架构决策记录:Architectural Decision Records,简称 ADR。
架构决策 (AD) 是一种软件设计选择,用于解决在架构上具有重要意义的功能性或非功能性需求。例如,对于实例,这可能是技术选择(例如 Java 与 JavaScript)、IDE 的选择(例如 IntelliJ 与 Eclipse IDE)、库之间的选择(例如 SLF4J 与 java.util.logging),或功能上的决策(例如,无限撤消与有限撤消)。
@Bitwarden
在 Bitwarden 的工程团队中引入架构决策 (AD) 的目的是引导开发朝着可维护和可扩展的代码库方向发展。同时努力确保所有团队的一致性。
AD 还将作为提议和规划技术债务的基础。
状态定义
进行中 - ADR 已获批准,我们正在整个项目中采用它。
标准 - ADR 已实施并假定为标准。
已放弃 - ADR 已被放弃,和/或被另一个 ADR 取代。
标签
请确保每个 ADR 都包含一个标签,标记它们适用于哪些项目(客户端、移动端和/或服务器)。如果需要,请随意创建更多标签。
流程
虽然流程最初主要是为发起者讨论架构决策而创建的,但对我们来说保持流程对任何人的建议开放是很重要的。为此,任何人都可以自由地打开 PR 来建议 AD。然后将讨论这些建议,以便在采纳之前在发起者之间达成普遍共识。
ADR
0001 - Angular Reactive Forms
0002 - Public API for modules
0003 - Adopt Observable Data Services for Angular
0004 - Refactor State Service
0005 - Refactor Api Service
0006 - Clients: Use Jest Mocks
0007 - Manifest V3 sync Observables
0008 - Server: Adopt CQRS
0009 - Composition over inheritance
0010 - Angular Modules
0011 - Angular Clients folder structure
0012 - Angular Filename convention
0013 - Avoid layered folder structure
0014 - Adopt Typescript Strict flag
0015 - Short Lived Browser Services
0016 - Move Decryption and Encryption to Views
0017 - Use Swift to build watchOS app
0018 - Feature management
0019 - Adoption of Web Push
0020 - Observability with OpenTelemetry
0021 - Logging to Standard Output
最后更新于