mcpField
D
ddd4j-project-creator

ddd4j-project-creator

github.com/partme-ai开发71678 次安装3 周前更新
代码仓库

关于 ddd4j-project-creator

此技能指导 AI Agent 创建或检查 ddd4j 项目,仅应在请求明确提及 ddd4j 时使用。它涵盖单体与微服务结构、多种架构模式及项目规范检查。

主要功能

  1. 01创建单模块和多模块项目
  2. 02搭建微服务项目结构
  3. 03支持四种架构模式
  4. 04检查分层、依赖和命名
  5. 05生成 Maven 项目文件

适用场景

  1. 01初始化明确指定的 ddd4j 项目
  2. 02为 ddd4j 单体或微服务选择结构
  3. 03按规范检查现有 ddd4j 项目

安装

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

$npx skills add https://github.com/partme-ai/full-stack-skills --skill ddd4j-project-creator

安装后在 Claude Code 中输入/ddd4j-project-creator确认已加载。

包含的文件

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

LICENSE.txt
docs/
1、DDD 经典分层架构目录结构.md
2、六边形架构详细目录结构参考.md
3、整洁架构详细目录结构参考.md
4、COLA V5 架构详细目录结构参考.md
examples/
architecture-patterns.md
microservices.md
multi-module.md
single-module.md
scripts/
__init__.py
check_project.py
init_project.py

详细介绍

DDD4j 项目创建器

何时使用此技能

重要:仅当用户明确提到创建 ddd4j 项目、初始化 ddd4j 项目或设置 ddd4j-boot 项目时,才能触发此技能。

当用户提到以下内容时,始终使用此技能:

  • 创建 ddd4j 项目(明确提到“ddd4j”)
  • 初始化 ddd4j-boot 项目
  • 设置 ddd4j 项目结构
  • 创建 ddd4j 项目脚手架
  • 创建 ddd4j 项目(明确提到“ddd4j”)
  • 初始化 ddd4j 项目(initialize ddd4j project)
  • 创建 ddd4j-boot 项目(create ddd4j-boot project)

触发短语包括:

  • “创建 ddd4j 项目”(create ddd4j project)——必须包含“ddd4j”
  • “初始化 ddd4j 项目”(initialize ddd4j project)——必须包含“ddd4j”
  • “创建 ddd4j-boot 项目”(create ddd4j-boot project)——必须包含“ddd4j”
  • “使用 ddd4j 创建项目”(create project using ddd4j)
  • “ddd4j 项目脚手架”(ddd4j project scaffolding)

以下情况不要触发此技能:

  • 未提及 ddd4j 的通用 DDD 项目
  • JPA/Hibernate 项目
  • 其他 ORM 框架
  • 未涉及 ddd4j 的通用项目初始化
  • 未包含“ddd4j”的“创建 DDD 项目”(范围太广)
  • 未包含“ddd4j”的“初始化项目”(范围太广)

关于 DDD4j Boot

DDD4j Boot 是一个基于**领域驱动设计(DDD)**原则的 Java 微服务开发脚手架。它基于 Spring Boot 3.5.x 构建,并使用轻量级的 ddd-4-java 和 cqrs-4-java 库实现领域驱动设计、命令查询职责分离(CQRS)和事件溯源。

核心设计原则
  • 领域驱动设计(DDD):通过限界上下文进行战略设计,通过实体、值对象、聚合、领域服务、仓储和领域事件进行战术设计
  • 命令查询职责分离(CQRS):分离读写模型,独立优化
  • 事件溯源:将状态变更记录为事件序列,支持完整历史记录和状态重建
  • 菱形架构(COLA):适配器 → 应用层 → 领域层 ← 基础设施层的四层架构
主要功能
  • 完整的 DDD 分层架构,支持 COLA V5 模式
  • 基于 ddd-4-java 和 cqrs-4-java 的轻量级 DDD 实现
  • 技术栈集成:Spring Boot 3.5.x、MyBatis Plus、Jackson、Guava、Swagger、SaToken
  • 支持双技术栈:WebMVC(传统 Servlet)和 WebFlux(响应式)
  • 领域模型基础能力:BaseEntity、BaseRepository、BaseService
  • 支持领域事件,内置事件发布机制
  • 用于集成外部服务的防腐层(ACL)
  • 统一的异常处理机制

支持的项目类型

1. 单体单模块

适用场景:中小型应用,单个业务领域,团队规模 5-15 人

特点:

  • 单个 Maven 模块
  • 所有层(interfaces、application、domain、infrastructure)都在同一模块内
  • 适合快速开发和部署
2. 单体多模块

适用场景:中大型应用,多个业务域,团队规模 15-50 人

特点:

  • 按业务域划分为多个 Maven 模块
  • 每个业务域包含完整的 DDD 四层架构
  • 共享 common 模块
  • 统一的 BOM 和依赖管理
3. 微服务

适用场景:大型电商平台,多个业务域,团队规模 50+ 人

特点:

  • 每个服务独立部署
  • 服务间通过 RPC 和消息队列通信
  • 每个服务内部按 DDD 四层架构组织
  • 独立的数据库和配置

如何使用此技能

重要:仅当用户明确提到创建 ddd4j 项目时,才能触发此技能。对于未涉及 ddd4j 的通用 DDD 项目创建请求,不要触发此技能。

新建 DDD4j 项目
  1. 根据用户需求识别项目类型:

    • 单模块单体 → single-module
    • 多模块单体 → multi-module
    • 微服务 → microservices
  2. 从 examples/ 目录加载相应示例:

    • examples/single-module.md - 单模块单体结构
    • examples/multi-module.md - 多模块单体结构
    • examples/microservices.md - 微服务结构
    • examples/architecture-patterns.md - DDD、Hexagonal、Clean、COLA V5 模式
  3. 收集项目信息:

    • groupId:Maven group ID(例如,com.github.hiwepy 或 io.ddd4j.base)
    • artifactId:Maven artifact ID(例如,ddd4j-douyin 或 my-ddd4j-service)
    • version:项目版本(例如,1.0.0-SNAPSHOT)
    • parentVersion:父 POM 版本(例如,2023.0.x.20251205-SNAPSHOT 或 ddd4j-boot-parent 的引用)
    • packageBase:基础包名(例如,io.ddd4j.douyin 或 com.example.service)
    • modules:业务模块列表(适用于多模块/微服务)
    • architecture:架构模式(DDD Classic、Hexagonal、Clean、COLA V5)
    • ddd4jBootVersion:DDD4j Boot 版本(若使用 ddd4j-boot-bom)
  4. 生成项目结构:

    • 根据所选类型创建目录结构
    • 生成 pom.xml 文件(父级和模块)
    • 为每个模块创建 package-info.java 文件
    • 生成 .gitignore、LICENSE、mvnw、mvnw.cmd
    • 创建包含 src/main/java 和 src/test/java 的基本目录结构
  5. 保存到项目目录:

    • 默认位置:直接保存到命令执行目录(与命令处于同一层级)
    • 创建目录:如果项目目录结构不存在,则自动创建
    • 文件命名:根据项目类型和模块名称使用具有描述性的名称
验证现有项目
  1. 分析项目结构:

    • 扫描项目目录中的 Maven 模块
    • 识别分层结构(interfaces、application、domain、infrastructure)
    • 检查包命名约定
    • 验证目录组织方式
  2. 识别项目类型:

    • 单模块:根目录下有一个 pom.xml,所有层都在一个模块中
    • 多模块:父级 pom.xml 包含多个模块,每个模块都有完整分层
    • 微服务:包含多个服务,每个服务都有独立结构
  3. 对照标准进行验证:

    • 检查是否符合 DDD 分层要求
    • 验证依赖方向(interfaces → application → domain ← infrastructure)
    • 验证包命名({basePackage}.{module}.{layer})
    • 检查必需目录(src/main/java、src/test/java)是否存在
    • 验证 package-info.java 文件是否存在
  4. 生成验证报告:

    • 列出发现的问题
    • 提供建议
    • 为不符合要求的结构提出修复方案

输出格式和文件保存

生成项目结构时,请遵循以下响应结构:

  1. 先保存文件:在命令执行目录中直接创建项目结构

    • 项目将在与命令执行位置相同的层级创建
    • 生成所有必需的文件和目录(pom.xml、src/ 等)
    • 使用 artifactId 作为项目根目录名称
  2. 告知用户:说明文件的保存位置

  3. 展示结构:在代码块中显示生成的目录结构

响应结构示例:

  • 第一行:“我已创建 DDD 项目结构,并将其保存到当前目录下的 ./{artifactId}/。”
  • 然后在代码块中展示结构:
    • 以三个反引号 + text + 换行开头
    • 接着显示目录结构
    • 以三个反引号 + 换行结尾

关键要求:

  • 始终将项目文件直接保存到命令执行目录(相同层级)
  • 使用 artifactId 作为项目根目录名称
  • 如果目录结构不存在,则自动创建
  • 生成包含所有必需文件的完整项目结构
  • 严格遵循 Maven 和 DDD 规范

项目结构规范

包命名约定

对于多模块项目:

{basePackage}.{moduleName}.{layerName}

示例:

  • io.ddd4j.douyin.api.domain - API 模块,领域层
  • io.ddd4j.douyin.api.application - API 模块,应用层
  • io.ddd4j.douyin.api.interfaces - API 模块,接口层
  • io.ddd4j.douyin.api.infrastructure - API 模块,基础设施层
必需文件

每个模块都必须包含:

  • pom.xml - Maven 配置
  • src/main/java/{package}/package-info.java - 包文档
  • src/test/java/ - 测试目录结构
  • .gitignore - Git 忽略规则(位于根目录)
  • LICENSE - 许可证文件(位于根目录)
  • mvnw、mvnw.cmd - Maven Wrapper(位于根目录)
分层依赖

正确的依赖方向:

interfaces → application → domain ← infrastructure

规则:

  • 领域层不得依赖任何其他层
  • 基础设施层实现领域层接口
  • 应用层依赖领域层
  • 接口层依赖应用层

架构模式

该技能支持四种架构模式:

  1. DDD 经典分层架构(DDD 经典分层架构)

    • 分层:interfaces、application、domain、infrastructure
    • 参考:docs/1、DDD 经典分层架构目录结构.md 和 examples/architecture-patterns.md#ddd-classic
  2. 六边形架构(六边形架构)

    • 端口与适配器模式
    • 参考:docs/2、六边形架构详细目录结构参考.md 和 examples/architecture-patterns.md#hexagonal
  3. 整洁架构(整洁架构)

    • 实体、用例、接口适配器
    • 参考:docs/3、整洁架构详细目录结构参考.md 和 examples/architecture-patterns.md#clean
  4. COLA V5(菱形架构)

    • Adapter → App → Domain ← Infrastructure
    • 参考:docs/4、COLA V5 架构详细目录结构参考.md 和 examples/architecture-patterns.md#cola-v5

验证规则

检查现有项目时,请验证:

  1. 结构合规性:

    • ✓ 分层组织正确
    • ✓ 模块划分恰当
    • ✓ 包命名符合约定
  2. 依赖规则:

    • ✓ 领域层没有外部依赖
    • ✓ 基础设施层实现领域接口
    • ✓ 依赖方向正确
  3. 文件组织:

    • ✓ 必需目录存在
    • ✓ 存在 package-info.java 文件
    • ✓ Maven 配置正确
  4. 命名约定:

    • ✓ 包名称符合约定
    • ✓ 模块名称具有描述性
    • ✓ 分层名称规范

示例

请参阅 examples/ 目录,了解以下示例:

  • single-module.md - 完整的单模块单体示例
  • multi-module.md - 完整的多模块单体示例(基于 ddd4j-douyin 结构)
  • microservices.md - 完整的微服务示例
  • architecture-patterns.md - 包含四种架构模式及其详细结构

关键词

英文关键词: ddd4j, ddd4j-boot, ddd4j project, create ddd4j project, initialize ddd4j project, ddd4j project creator, ddd4j project scaffolding, ddd4j-boot project, ddd4j project structure, ddd4j-boot initialization, ddd4j microservice, ddd4j monolith

中文关键词: ddd4j, ddd4j-boot, ddd4j 项目, 创建 ddd4j 项目, 初始化 ddd4j 项目, ddd4j 项目创建, ddd4j 项目脚手架, ddd4j-boot 项目, ddd4j 项目结构, ddd4j-boot 初始化, ddd4j 微服务, ddd4j 单体应用

重要提示:所有关键词都必须包含“ddd4j”,以避免误触发。不含“ddd4j”的通用词语,例如“DDD 项目”或“创建项目”,不应触发此技能。

评论

支持 Markdown