architecture 是做什么的?
架构决策框架。用于需求分析、权衡评估和ADR文档编写。在进行架构决策或分析系统设计时使用。
概述
本框架提供了一套系统化的方法论,帮助在软件项目中进行架构决策。它涵盖了从需求分析、方案评估到最终记录架构决策记录(ADR)的完整流程。
核心功能
- 需求分析:识别关键功能和非功能需求,确定决策约束条件。
- 权衡评估:列出备选方案,评估每个方案的优缺点,包括成本、复杂度、可扩展性、维护性等因素。
- ADR文档编写:标准化的架构决策记录模板,确保每个决策的可追溯性。
使用场景
- 当需要选择技术栈或框架时。
- 在系统设计中评估不同的架构模式(如微服务、单体、事件驱动等)。
- 记录团队做出的重要技术决策,供后续参考。
如何使用
- 启动技能:
/architecture - 按照引导回答一系列问题,例如:
- 目标系统的核心需求是什么?
- 有哪些备选方案?
- 每个方案的关键权衡点是什么?
- 技能将生成结构化的ADR文档,包含上下文、决策、理由和影响。
输出格式
生成的ADR采用Markdown格式,包含以下部分:
- 标题:决策的简明描述。
- 状态:[提案中/已接受/已废弃]等。
- 上下文:为什么需要这个决策?
- 决策:最终选择的具体方案。
- 理由:选择该方案的原因,以及权衡分析。
- 影响:该决策对系统、团队或流程的正面和负面后果。
- 附录:参考文档、讨论记录等。
平台支持
- Claude Code
- Cursor
- Codex
- 其他AI代理平台
示例
输入
我需要为一个电商平台决定使用关系型数据库还是NoSQL。
输出(ADR片段)
# ADR-001:选择PostgreSQL作为主力数据库
**状态**:已接受
**上下文**:
电商平台需要强一致性支持事务(订单、支付),同时有部分非结构化数据(产品评论)。
**决策**:
采用PostgreSQL作为主力数据库,对非结构化数据使用JSONB字段。
**理由**:
- 事务支持符合核心业务需求。
- JSONB字段提供足够的灵活性。
- 团队对SQL熟悉,学习成本低。
**影响**:
- 正面:简化技术栈,减少运维复杂度。
- 负面:未来若扩展到海量流量可能需要分片。
贡献
欢迎通过GitHub提交Issues或Pull Requests改进本技能。
许可
MIT License