关于 ddd4j-project-creator
此技能指导 AI Agent 创建或检查 ddd4j 项目,仅应在请求明确提及 ddd4j 时使用。它涵盖单体与微服务结构、多种架构模式及项目规范检查。
主要功能
- 01创建单模块和多模块项目
- 02搭建微服务项目结构
- 03支持四种架构模式
- 04检查分层、依赖和命名
- 05生成 Maven 项目文件
适用场景
- 01初始化明确指定的 ddd4j 项目
- 02为 ddd4j 单体或微服务选择结构
- 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.txtdocs/1、DDD 经典分层架构目录结构.md2、六边形架构详细目录结构参考.md3、整洁架构详细目录结构参考.md4、COLA V5 架构详细目录结构参考.mdexamples/architecture-patterns.mdmicroservices.mdmulti-module.mdsingle-module.mdscripts/__init__.pycheck_project.pyinit_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 项目
-
根据用户需求识别项目类型:
- 单模块单体 →
single-module - 多模块单体 →
multi-module - 微服务 →
microservices
- 单模块单体 →
-
从
examples/目录加载相应示例:examples/single-module.md- 单模块单体结构examples/multi-module.md- 多模块单体结构examples/microservices.md- 微服务结构examples/architecture-patterns.md- DDD、Hexagonal、Clean、COLA V5 模式
-
收集项目信息:
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)
-
生成项目结构:
- 根据所选类型创建目录结构
- 生成
pom.xml文件(父级和模块) - 为每个模块创建
package-info.java文件 - 生成
.gitignore、LICENSE、mvnw、mvnw.cmd - 创建包含
src/main/java和src/test/java的基本目录结构
-
保存到项目目录:
- 默认位置:直接保存到命令执行目录(与命令处于同一层级)
- 创建目录:如果项目目录结构不存在,则自动创建
- 文件命名:根据项目类型和模块名称使用具有描述性的名称
验证现有项目
-
分析项目结构:
- 扫描项目目录中的 Maven 模块
- 识别分层结构(interfaces、application、domain、infrastructure)
- 检查包命名约定
- 验证目录组织方式
-
识别项目类型:
- 单模块:根目录下有一个
pom.xml,所有层都在一个模块中 - 多模块:父级
pom.xml包含多个模块,每个模块都有完整分层 - 微服务:包含多个服务,每个服务都有独立结构
- 单模块:根目录下有一个
-
对照标准进行验证:
- 检查是否符合 DDD 分层要求
- 验证依赖方向(interfaces → application → domain ← infrastructure)
- 验证包命名(
{basePackage}.{module}.{layer}) - 检查必需目录(
src/main/java、src/test/java)是否存在 - 验证
package-info.java文件是否存在
-
生成验证报告:
- 列出发现的问题
- 提供建议
- 为不符合要求的结构提出修复方案
输出格式和文件保存
生成项目结构时,请遵循以下响应结构:
-
先保存文件:在命令执行目录中直接创建项目结构
- 项目将在与命令执行位置相同的层级创建
- 生成所有必需的文件和目录(pom.xml、src/ 等)
- 使用 artifactId 作为项目根目录名称
-
告知用户:说明文件的保存位置
-
展示结构:在代码块中显示生成的目录结构
响应结构示例:
- 第一行:“我已创建 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
规则:
- 领域层不得依赖任何其他层
- 基础设施层实现领域层接口
- 应用层依赖领域层
- 接口层依赖应用层
架构模式
该技能支持四种架构模式:
-
DDD 经典分层架构(DDD 经典分层架构)
- 分层:interfaces、application、domain、infrastructure
- 参考:
docs/1、DDD 经典分层架构目录结构.md和examples/architecture-patterns.md#ddd-classic
-
六边形架构(六边形架构)
- 端口与适配器模式
- 参考:
docs/2、六边形架构详细目录结构参考.md和examples/architecture-patterns.md#hexagonal
-
整洁架构(整洁架构)
- 实体、用例、接口适配器
- 参考:
docs/3、整洁架构详细目录结构参考.md和examples/architecture-patterns.md#clean
-
COLA V5(菱形架构)
- Adapter → App → Domain ← Infrastructure
- 参考:
docs/4、COLA V5 架构详细目录结构参考.md和examples/architecture-patterns.md#cola-v5
验证规则
检查现有项目时,请验证:
-
结构合规性:
- ✓ 分层组织正确
- ✓ 模块划分恰当
- ✓ 包命名符合约定
-
依赖规则:
- ✓ 领域层没有外部依赖
- ✓ 基础设施层实现领域接口
- ✓ 依赖方向正确
-
文件组织:
- ✓ 必需目录存在
- ✓ 存在
package-info.java文件 - ✓ Maven 配置正确
-
命名约定:
- ✓ 包名称符合约定
- ✓ 模块名称具有描述性
- ✓ 分层名称规范
示例
请参阅 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 项目”或“创建项目”,不应触发此技能。