mcpField
C
code-generation-template

code-generation-template

github.com/aj-geddes开发373534 次安装34 周前更新
代码仓库

关于 code-generation-template

面向自动生成脚手架和重复代码的开发者技能。内容涵盖模板、AST 技术、基于模式的生成和 CLI 生成器,并提供验证与可维护性指导。

主要功能

  1. 01基于模板生成代码
  2. 02基于 AST 的生成技术
  3. 03项目与组件脚手架
  4. 04API 客户端和模型生成
  5. 05自定义 CLI 生成器指导
  6. 06验证与维护实践

适用场景

  1. 01搭建新项目或组件脚手架
  2. 02按模式生成 CRUD 代码
  3. 03从 OpenAPI 规范生成 API 客户端
  4. 04从 JSON Schema 生成类型

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill code-generation-template

安装后在 Claude Code 中输入/code-generation-template确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
ast-based-code-generation.md
database-model-generation.md
graphql-code-generation.md
openapi-client-generation.md
plopjs-generator.md
project-scaffolding.md
template-engines.md
scripts/
validate-api.sh
templates/
api-scaffold.yaml

详细介绍

代码生成与模板

目录

概述

全面介绍代码生成技术,包括模板引擎、AST 操作、代码脚手架和自动生成样板代码,以提高效率并保持一致性。

适用场景

  • 为新项目或组件搭建脚手架
  • 生成重复的样板代码
  • 自动创建 CRUD 操作
  • 根据 OpenAPI 规范生成 API 客户端
  • 根据模板构建代码
  • 根据架构创建数据库模型
  • 根据 JSON Schema 生成 TypeScript 类型
  • 构建自定义 CLI 生成器

快速开始

最简可运行示例:

// templates/component.hbs
import React from 'react';

export interface {{pascalCase name}}Props {
  {{#each props}}
  {{this.name}}{{#if this.optional}}?{{/if}}: {{this.type}};
  {{/each}}
}

export const {{pascalCase name}}: React.FC<{{pascalCase name}}Props> = ({
  {{#each props}}{{this.name}},{{/each}}
}) => {
  return (
    <div className="{{kebabCase name}}">
      {/* Component implementation */}
    </div>
  );
};

参考指南

references/ 目录中的详细实现:

指南内容
模板引擎模板引擎
基于 AST 的代码生成基于 AST 的代码生成
项目脚手架项目脚手架
OpenAPI 客户端生成OpenAPI 客户端生成
数据库模型生成数据库模型生成
GraphQL 代码生成GraphQL 代码生成
Plop.js 生成器Plop.js 生成器

最佳实践

✅ 应该做
  • 使用模板生成重复的代码模式
  • 根据架构生成 TypeScript 类型
  • 在生成的代码中包含测试
  • 在模板中遵循项目约定
  • 添加注释来说明生成的代码
  • 对模板进行版本控制
  • 让模板支持配置
  • 随代码一并生成文档
  • 生成前验证输入
  • 使用一致的命名约定
  • 保持模板简单且易于维护
  • 提供 CLI,方便生成
❌ 不应该做
  • 过度生成(避免不必要的复杂性)
  • 生成难以维护的代码
  • 忘记验证生成的代码
  • 在模板中硬编码值
  • 生成代码却不附带文档
  • 为一次性场景创建生成器
  • 在模板中混入业务逻辑
  • 生成代码却不进行格式化
  • 忽略生成器中的错误处理
  • 创建过于复杂的模板

评论

支持 Markdown