/design-patterns
在 BK-CI 中判断何时使用工厂、策略、责任链、观察者、模板方法、装饰器等设计模式时使用。当用户要重构可扩展结构、统一模式选型、理解项目里的模式落点时优先使用。
$ npx -y skills add tencentblueking/bk-ci --skill design-patterns --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/design-patterns
Context preview
The summary Claude sees to decide when to auto-load this skill.
在 BK-CI 中判断何时使用工厂、策略、责任链、观察者、模板方法、装饰器等设计模式时使用。当用户要重构可扩展结构、统一模式选型、理解项目里的模式落点时优先使用。
SKILL.md
design-patterns.SKILL.mdname: design-patterns description: 在 BK-CI 中判断何时使用工厂、策略、责任链、观察者、模板方法、装饰器等设计模式时使用。当用户要重构可扩展结构、统一模式选型、理解项目里的模式落点时优先使用。
BK-CI 设计模式实践
适用场景
- 需要为一段可扩展逻辑选择合适的设计模式
- 需要理解 BK-CI 里某个模式为什么这样落地
- 需要重构 if-else、分发逻辑、插件扩展点、后置处理链
- 需要判断某个能力更适合用工厂、策略、责任链、观察者还是模板方法
不适用场景
- 只是查某个类、某个接口或某段代码在哪里
- 只是普通 CRUD、简单参数封装或一次性脚本逻辑
- 问题本质是模块归属、接口设计或数据库结构,不是模式选型
快速指导
1. 先判断你解决的是哪一类问题:
- 对象按类型创建:看 `reference/1-core-patterns.md` 里的工厂模式
- 多种规则按条件切换:看策略模式
- 多个处理步骤串联:看责任链模式
- 状态变化后广播处理:看观察者模式
- 固定主流程、子类只改局部:看模板方法模式
- 在原能力外叠加附加行为:看装饰器模式
2. 在 BK-CI 里,模式选择要优先服从“模块边界 + 扩展点稳定性”,不要为了模式而模式。 3. 如果只是 2 到 3 个稳定分支,且短期不会扩展,先别急着上复杂模式。 4. 如果一段逻辑需要外部扩展、插件接入、规则分发或顺序处理,优先考虑模式,而不是继续堆 `when` / `if-else`。 5. 选型前先看项目里已有落地,不要凭空造新写法。常见实例在 `reference/3-project-examples.md`。
高信号规则
- 工厂模式适合“如何创建”,策略模式适合“如何选择一种行为”
- 责任链适合“多个处理器按顺序试或继续”,不适合硬凑单一判断逻辑
- 观察者适合事件解耦,不适合强事务链路里的必须同步步骤
- 模板方法适合主流程稳定、局部差异明确的场景
- 装饰器适合附加横切能力,不适合把核心流程绕得过深
关键陷阱
- 只有两个稳定分支也强行上策略或工厂,增加理解成本
- 把责任链当作“任何流程都能往里塞”的万能结构
- 观察者乱用在需要强一致性的主业务流程里
- 模式只在类图上优雅,落到 BK-CI 实际模块时却破坏分层和边界
- 只看教科书定义,不看项目里已经存在的同类实践
延伸阅读
- 核心模式:`reference/1-core-patterns.md`
- 选型方法:`reference/2-selection-guidelines.md`
- 项目案例:`reference/3-project-examples.md`
- 如果模式已经沉淀为通用组件:再看 `utility-components`
- 如果问题偏框架实践:再看 `common-technical-practices`
Other skills on bk-ci.
- /00-bkci-global-architecture
用于跨模块开发、排查链路归属、判断某个需求应该落在哪个 BK-CI 模块,或需要快速理解流水线全链路协作时使用。单模块修改时优先读取对应模块 skill,而不是停留在这里。
Open skill - /agent-module-architecture
处理 BK-CI Agent 构建机侧能力时使用,例如守护进程、心跳、Ask 轮询、任务拉起、升级更新和与 Dispatch/Worker 的协作。当用户要改构建机宿主侧行为而不是 Worker 执行细节时优先使用。
Open skill - /api-interface-design
设计 BK-CI API 契约时使用,例如 Resource 路径设计、HTTP 方法选择、请求响应对象、错误码和版本策略。当用户要定义接口而不是实现业务逻辑时优先使用。
Open skill - /artifactory-module-architecture
处理 BK-CI 制品上传下载、制品元数据、BkRepo 或磁盘后端存储、文件任务和清理链路时使用。当用户提到构建产物、制品归档、下载令牌、报告文件、BkRepo 集成或制品清理时优先使用。
Open skill - /auth-module-architecture
处理 BK-CI Auth 模块时使用,例如 RBAC 权限校验、用户组与资源管理、IAM 集成、授权迁移和 OAuth2 认证。当用户要改权限平台实现而不是单次权限模型变更时优先使用。
Open skill - /backend-microservice-development
编写 BK-CI 后端微服务代码时使用,例如新增 Resource、组织 API/Service/DAO 分层、依赖注入、服务归属判断和 Spring Boot 开发约定。当用户要做 Kotlin/Java 后端开发时优先使用。
Open skill

