name: c4-modeling description: “用于记录软件架构的C4架构建模。在创建架构图、规划新系统、与利益相关者沟通或进行架构评审时使用。”
C4建模技能
使用C4模型和Mermaid语法创建四个抽象级别的分层架构图。
变量
| 变量 | 默认值 | 描述 |
|---|---|---|
| DEFAULT_LEVEL | context | 从 context、container、component 或 code 开始 |
| OUTPUT_FORMAT | mermaid | mermaid、structurizr、plantuml |
| INCLUDE_LEGEND | true | 在图表中添加图例 |
指令
强制要求 - 创建C4图时请遵循以下工作流程步骤。
- 始终从第1级(上下文)开始,根据需要放大
- 切勿在单个图表中混合抽象级别
- 为所有元素包含描述
危险信号 - 停止并重新考虑
如果您即将:
- 在没有首先创建上下文图的情况下创建容器图
- 在同一图表中混合容器和组件
- 在上下文级别显示实现细节
- 为非关键代码创建代码级图表
停止 -> 检查 reference/level-guidelines.md 中的相应级别指南 -> 然后继续
工作流程
- [ ] 确定受众和目的
- [ ] 检查点:从第1级(上下文)开始,除非您有更高级别的图表
- [ ] 识别当前级别的所有参与者和系统
- [ ] 用带标签的箭头定义关系
- [ ] 添加技术选择(针对第2级及以上)
- [ ] 检查点:验证您没有混合抽象级别
- [ ] 包含描述以提高清晰度
C4级别
| 级别 | 名称 | 目的 | 受众 |
|---|---|---|---|
| 1 | 上下文 | 环境中的系统 | 所有人 |
| 2 | 容器 | 主要组件 | 技术利益相关者 |
| 3 | 组件 | 内部结构 | 开发人员 |
| 4 | 代码 | 实现 | 开发人员(谨慎使用) |
快速参考
第1级:上下文
显示:系统、用户、外部系统 隐藏:内部细节、数据库、技术
第2级:容器
显示:应用程序、API、数据库、队列 隐藏:内部结构、类
第3级:组件
显示:模块、服务、存储库 隐藏:单个类、函数
第4级:代码
显示:类、接口、关键抽象 使用:仅用于复杂/关键领域
有关详细指南,请参阅 reference/level-guidelines.md。
有关Mermaid C4语法,请参阅 reference/mermaid-syntax.md。
Mermaid快速语法
C4Context
title 系统上下文图
Person(user, "用户", "描述")
System(system, "系统", "描述")
System_Ext(ext, "外部系统", "描述")
Rel(user, system, "使用")
C4Container
title 容器图
Container(web, "Web应用", "React", "用户界面")
Container(api, "API", "Node.js", "后端")
ContainerDb(db, "数据库", "PostgreSQL", "存储")
Rel(web, api, "调用", "REST")
完整语法参考请参阅 reference/mermaid-syntax.md。
输出
图表应包含:
- 指示级别和系统的标题
- 所有相关元素及其描述
- 带标签的关系
- 技术选择(第2级及以上)
- 清晰的分组边界