mcpField
A
arch-patterns

arch-patterns

github.com/alphaonedev开发43 次安装
代码仓库

关于 arch-patterns

arch-patterns 是用于 OpenClaw 的软件设计技能,帮助开发者应用设计模式与原则。它可用于规划代码结构、审查设计和制定重构方案,并提供示例与反模式检查。

主要功能

  1. 01GoF 模式建议
  2. 02SOLID 原则指导
  3. 03DRY、YAGNI 与 KISS 实践
  4. 04组合与函数式编程比较
  5. 05代码反模式审查

适用场景

  1. 01规划新代码库
  2. 02重构遗留代码
  3. 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 请求体:
    { "pattern": "singleton", "language": "java", "context": "Thread-safe logger" }
    
    响应包含 2-4 行代码片段,例如 Java 单例类。
  • 配置格式:高级配置使用 YAML,例如:
    skill: arch-patterns
    options:
      pattern: strategy
      validate: true
    
    在 CLI 中通过 --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. 示例 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. 示例 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 以进行性能调整。

评论

支持 Markdown