mcpField
S
solid-java

solid-java

github.com/fusengine开发3444 次安装1 天前更新
代码仓库

关于 solid-java

面向按 SOLID 原则和功能模块组织代码的 Java 团队架构技能,提供分层规范与模板,指导职责划分、代码复用、依赖注入及实现脚手架。

主要功能

  1. 01按功能划分模块结构
  2. 02检查并复用共享代码
  3. 03控制器保持精简并委托服务层
  4. 04DTO 使用 record,受限层次使用 sealed 类型
  5. 05为公共方法编写 Javadoc
  6. 06架构与代码模板

适用场景

  1. 01将 Java 代码库组织为功能模块
  2. 02查找可复用的共享服务与接口
  3. 03生成服务、仓库和测试的脚手架
  4. 04在实现过程中应用 SOLID 原则

安装

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

$npx skills add https://github.com/fusengine/claude-plugins --skill solid-java

安装后在 Claude Code 中输入/solid-java确认已加载。

详细介绍

SOLID Java 为 Java 25+(当前 LTS)强制采用模块化架构:每项功能都位于 `modules/[feature]/` 下(控制器、服务、仓库、接口、模型/DTO),共享代码放在 `modules/core/` 中,接口仅位于 `modules/[feature]/interfaces/` 中,控制器保持精简并委托给服务,文件行数不超过 `FUSE_SOLID_MAX_LINES`,DTO 使用 record,受限层级使用 sealed 类型,且每个公共方法都必须带有 Javadoc。

编写任何新代码之前,都必须先对 modules/core/services 和 modules/core/interfaces 进行 DRY 检查。概述请参阅 solid-principles.md,SRP/OCP/LSP/ISP/DIP 的详细说明请参阅各原则参考文档,模块/服务/接口/仓库/错误/测试的脚手架请参阅模板。

SOLID Java - 模块化架构

Agent 工作流(必须)

在进行任何实现之前,必须并行启动 3 个 Agent,每个 Agent 调用一次并指定 name:

  1. fuse-ai-pilot:explore-codebase - 分析现有架构
  2. fuse-ai-pilot:research-expert - 通过 Context7 核实 Java 文档
  3. fuse-ai-pilot:sniper - 实现后的验证

DRY - 创建前先复用(必须)

编写任何新代码之前:

  1. Grep 代码库,查找类似的接口、服务或逻辑
  2. 检查共享位置:modules/core/services/、modules/core/interfaces/
  3. 如果存在类似代码 -> 扩展/复用,而不是重复创建
  4. 如果代码将供 2 个或更多功能使用 -> 在 modules/core/ 中创建

架构(模块为强制要求)

层位置
控制器modules/[feature]/controllers/
服务modules/[feature]/services/
仓库modules/[feature]/repositories/
接口modules/[feature]/interfaces/
模型/DTOmodules/[feature]/models/
共享modules/core/{services,interfaces,models}/

绝不可使用扁平的 src/ 结构 - 始终使用 modules/[feature]/


关键规则(必须)

规则值
文件行数限制FUSE_SOLID_MAX_LINES
控制器保持精简,委托给服务
接口仅限 modules/[feature]/interfaces/
Javadoc为每个公共方法编写文档
Records用于 DTO(Java 16+)
Sealed用于受限层级(Java 17+)

参考指南

概念
主题参考文档何时查阅
SOLID 概述solid-principles.md快速参考
SRPsingle-responsibility.md臃肿的类
OCPopen-closed.md添加提供方
LSPliskov-substitution.md契约
ISPinterface-segregation.md臃肿的接口
DIPdependency-inversion.md注入
架构architecture-patterns.md模块化模式
模板
模板使用场景
module.md功能模块结构
service.md业务逻辑服务
interface.md契约定义
repository.md数据访问层
error.md自定义异常
test.md使用 mock 的单元测试

禁止事项

反模式修正方法
文件超过 FUSE_SOLID_MAX_LINES按职责拆分
在实现文件中定义接口移至 interfaces/ 目录
在服务中使用 new ConcreteClass()使用依赖注入
扁平的 src/ 结构使用 modules/[feature]/
上帝类按职责拆分

评论

支持 Markdown