关于 arch-patterns
arch-patterns 是用于 OpenClaw 的软件设计技能,帮助开发者应用设计模式与原则。它可用于规划代码结构、审查设计和制定重构方案,并提供示例与反模式检查。
主要功能
- 01GoF 模式建议
- 02SOLID 原则指导
- 03DRY、YAGNI 与 KISS 实践
- 04组合与函数式编程比较
- 05代码反模式审查
适用场景
- 01规划新代码库
- 02重构遗留代码
- 03检查代码中的反模式
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill arch-patterns安装后在 Claude Code 中输入/arch-patterns确认已加载。
详细介绍
arch-patterns
用途
此技能可帮助 OpenClaw 应用软件架构模式,包括 GoF 23 种模式(例如 Factory、Singleton、Observer)、SOLID 原则(单一职责、开闭原则),以及 DRY(不要重复自己)、YAGNI(你不会需要它)、KISS(保持简单,傻瓜)、组合优于继承和函数式编程概念等准则。可用它生成代码片段、建议重构方案或验证设计。
适用场景
在构建新代码库、重构旧系统或解决设计问题时使用此技能。例如,可将其用于 Java 或 Go 等语言中的面向对象设计,或在 Python 中采用函数式风格。不要用于简单脚本;仅在项目超过 1000 行代码或团队成员超过 5 人时使用。
核心功能
- GoF 模式:建议实现方式,例如 Factory Method(创建对象时无需指定类)或 Observer(在状态变化时通知依赖方)。
- SOLID 原则:落实单一职责(一个类只做一件事)或依赖倒置(依赖抽象)。
- 最佳实践:建议通过将重复代码提取为函数来遵循 DRY,通过避免过早添加功能来遵循 YAGNI,通过简化复杂逻辑来遵循 KISS,并优先使用组合(例如,使用接口)而非继承。
- 比较:提供代码示例,对比组合与继承,或函数式与命令式方法。
- 验证:分析用户代码中的反模式并建议修复方案,例如识别上帝对象。
使用模式
要使用此技能,请通过 CLI 或 API 调用 OpenClaw,并提出具体的模式问题。先提供语言和问题等上下文。使用 CLI 时,通过管道传入代码片段;使用 API 时,发送 JSON 负载。请求中始终包含技能 ID "arch-patterns"。示例流程:查询一种模式,获取代码片段,然后通过后续问题进一步完善。为确保准确性,每次调用仅查询一种模式。
常见命令/API
使用 OpenClaw CLI,并通过 $OPENCLAW_API_KEY 环境变量进行身份验证。命令必须包含技能 ID。
- CLI 命令:
openclaw run arch-patterns --pattern factory --lang go --input "Create a car factory"
此命令会生成 Factory 模式的 Go 结构体。 - API 端点:POST /api/v1/skills/arch-patterns,JSON 请求体:
响应包含 2-4 行代码片段,例如 Java 单例类。{ "pattern": "singleton", "language": "java", "context": "Thread-safe logger" } - 配置格式:高级配置使用 YAML,例如:
在 CLI 中通过skill: arch-patterns options: pattern: strategy validate: true--config path/to/config.yaml传入。 - 标志:添加
--validate检查现有代码,或添加--refactor获取修改建议。
集成说明
可将此技能封装在脚本或 IDE 插件中,集成到工作流。例如,在 CI/CD 流水线中,代码提交后调用 API 以落实 SOLID 原则。设置 $OPENCLAW_API_KEY 进行身份验证。如果与其他技能(例如 code-generation)配合使用,可串联请求:先查询 arch-patterns 获取设计方案,再将输出传给编译技能。确保输入不超过 500 个字符;较大的代码库应拆分处理。对于函数式编程,可在查询中指定 "fp" 等范式,以引导响应方向。
错误处理
检查响应代码以处理错误:HTTP 400 表示模式无效(例如将 "singleton" 拼错为 "singlton"),401 表示缺少 $OPENCLAW_API_KEY,429 表示触发速率限制。在 CLI 中,错误会以 JSON 形式返回,例如 "error": "Pattern not found"。使用指数退避重试暂时性错误。发送前验证输入;例如,如果查询缺少 --lang,OpenClaw 会默认使用英语,但在代码生成时会报错。记录错误及其时间戳,并包含完整请求负载以便调试。
具体使用示例
-
示例 1:在 Go 中实现工厂模式
命令:openclaw run arch-patterns --pattern factory --lang go --input "Vehicle creator"
输出:类似这样的代码片段:type Factory interface { Create() Vehicle } func NewCarFactory() Factory { return &CarFactory{} }这会为车辆创建一个工厂,通过集中创建对象来确保 DRY。
-
示例 2:在 Java 中进行符合 SOLID 的重构
API 调用:POST /api/v1/skills/arch-patterns,请求体:{ "pattern": "solid", "principle": "single-responsibility", "code": "public class UserService { /* handles users and logging */ }" }响应:建议拆分为:
public class UserService { /* only user logic */ } public class Logger { /* logging logic */ }这会应用单一职责原则,以提高可维护性。
图关系
- 相关内容:se-architecture(父级集群)、patterns(标签重叠)、solid(嵌入提示)、factory(特定模式)、singleton(模式)、observer(模式)、strategy(模式)。
- 关联:链接到 code-generation 以实现代码,链接到 debugging 以检测反模式,并基于 KISS/YAGNI 链接到 optimization 以进行性能调整。