mcpField
E
eliteforge-java-coding-spec

eliteforge-java-coding-spec

github.com/cloudsen开发40 次安装
代码仓库

关于 eliteforge-java-coding-spec

eliteforge-java-coding-spec 是在 Java 开发中应用 EliteForge 编码规范的技能,通过问题映射到规范条款,并要求回答标注条款编号。

主要功能

  1. 01Java 规则与决策指引
  2. 02按主题和条款快速检索
  3. 03编码及工具选型约束
  4. 04分层与 API 约定
  5. 05引用规范条款编号

适用场景

  1. 01核对 Java 实现方案
  2. 02按项目约定审查代码
  3. 03查找 API、持久化或并发规则

安装

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

$npx skills add https://github.com/cloudsen/eliteforge-skills --skill eliteforge-java-coding-spec

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

包含的文件

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

agents/
openai.yaml
references/
java-coding-spec-v1.md
toc.md

详细介绍

来自项目 README

EliteForge Java 编码规范 v1.0.0

目标

在 Java 开发任务中,依据规范提供明确的决策指引:什么应该做、什么禁止做、什么必须用什么工具/写法。引用规范条款时给出对应的 spec 行号。

执行原则

  1. 命中即强制执行
    规范中标注为"禁止"的条款,任何场景都不得妥协;标注为"必须"的条款不得降级替代。

  2. 代码示例优先取规范原文
    需要示例时,先从 references/java-coding-spec-v1.md 中提取对应条款的原文示例,不自行臆造。

  3. 最小化加载
    先用检索定位 spec 行号,再局部读取;避免整篇加载。

  4. 明确标注来源
    回答中标注对应的 spec 条款编号(如 §3.2 POJO类)。

快速检索

# 查看 spec 行号索引
cat references/toc.md

# 按关键字定位条款
rg -n "禁止|必须|推荐|使用|Spring|POJO|枚举|日志|事务|并发|MyBatis|服务间调用|Maven|国际化|网关|接口管理|工程" references/java-coding-spec-v1.md

# 按行号读取条款(示例:100-200行)
sed -n '100,200p' references/java-coding-spec-v1.md

高频问题映射

用户问题规范条款核心结论
枚举怎么写§3.3Enum后缀 + implements BizEnum + @Getter/@RequiredArgsConstructor
POJO 类怎么写§3.2UpperCamelCase + Serializable + serialVersionUID + @Accessors(chain=true)
工具类用什么§3.4Apache Commons / JDK / 统一框架工具,禁止 hutool
日志怎么打§3.6@Slf4j + 占位符,禁止 e.printStackTrace()
循环里能调接口吗§3.5禁止,必须封装批量接口
线程池怎么创建§3.7ThreadPoolExecutor + TransmittableThreadLocal,禁止 Executors
MyBatis-Plus 怎么用§3.8禁用注解,复杂查询用 xml,keepGlobalFormat=true
事务怎么处理§3.9public 方法,seata TCC,围住最小必要代码
RestTemplate 能用吗§3.10禁止,必须用 RestClient
Bean 怎么注入§3.10@RequiredArgsConstructor,禁止 @Autowired
服务间调用用什么§3.11HttpExchangeClient + RestClient,统一框架 starter
Maven 版本要求§3.12JDK21 + Maven 3.9.10+ + maven wrapper
Controller 怎么分层§7.2/§7.3Param入参/Vo出参,分离 api/innerapi/openapi
接口路径前缀§7.1/api 前端 /inner-api 内部 /open-api 开放
数据库表设计§4主键 id + 审计字段 + tenant_id/archived/version 按需
国际化文件放哪§7.6biz/resources/i18n/
smart-doc 配置§6smart-doc.json / smart-doc-innerapi.json / smart-doc-openapi.json
数据库适配 SQL 放哪§7.7resources/mapper/{mysql,dm,kingbase,oceanbase}/

核心约束速查

禁止清单(任何场景均不得妥协)
禁止项必须替代条款
hutoolApache Commons / JDK / 统一框架工具§3.4
e.printStackTrace() / System.out@Slf4j + log 占位符§3.6
循环/递归里调接口批量接口封装§3.5
Executors 创建线程池ThreadPoolExecutor§3.7
RestTemplateSpring6 RestClient§3.10
@Value 注解读 yamlProperties 类§3.10
@Select/@Insert/@Update 注解MyBatis xml§3.8
context-pathyaml 路由配置§3.10
lambdaQuery 多次单表查询xml 复杂查询§3.8
Controller 层写业务逻辑Manager/Service 层§3.10
@author JavaDoc@since§3.1
覆盖方式替换框架 Configuration扩展类或 yaml 配置§3.10
必须清单
必须项说明条款
serialVersionUIDPOJO 实现 Serializable 时必须定义§3.2
@Accessors(chain=true)Vo/Param/Dto 必须§3.2
@since新增内容必须标识版本§3.1
JSpecify 注解@Nullable/@NonNull/@NullMarked§3.1
每成员 javadocPOJO 枚举字段必须§3.1/§3.2/§3.3
BizEnum前端/Entity 用枚举必须实现§3.3
ResVoController 和服务间调用统一响应§3.2/§3.11
HttpExchangeClient服务间调用必须§3.11
keepGlobalFormat=true@TableField 必须§3.8
函数式 wrapperMyBatis-Plus wrapper 必须§3.8
seata TCC分布式事务必须§3.9
JDK21 + Maven 3.9.10+必须版本§3.12
maven wrapper必须使用项目 wrapper§3.12
审计字段业务表必须有§4
api/inner-api/open-api 前缀Controller 路径必须§7.1
前端接口 Param入参/Vo出参Controller 必须§7.2
内部接口 Param入参/Dto出参InnerController 必须§7.2
开放接口独立 Dto/ParamOpenController 必须§7.2
并发修改加 version数据库必须有乐观锁字段§4
工具链速查
场景工具条款
字符串拼接java.lang.String.join()§3.4
集合判空CollectionUtils.isEmpty() / MapUtils.isEmpty()§3.4
数组判空ArrayUtils.isEmpty()§3.4
字符串判空StringUtils.isBlank() / isNotBlank()§3.4
字符串相等Strings.CS.equals() / Strings.CI.equals()§3.4
二维元组org.apache.commons.lang3.tuple.Pair<L,R>§3.4
时间工具cn.cisdigital.elite.forge.infra.commons.util.TimeUtils§3.4
JSON 工具JsonUtils§3.4
国际化I18nUtils§3.4
上下文ContextStore§3.4
服务间调用cisdigital-elite-forge-infra-httpexchange-spring-boot3-starter§3.11
线程上下文TransmittableThreadLocal + TtlExecutors§3.7
日期格式化DateTimeFormatter(非 SimpleDateFormat)§3.7

分层模型速查

POJO 类分层
Entity    → ORM 实体映射,实现 Serializable
Dto       → 内部数据传输
Param     → Controller 入参,必须 jsr 303 validation
Vo        → Controller 出参
各层入参出参约束
层级入参出参
repositoryParam / DtoEntity / Dto
serviceParam / DtoDto / Vo
前端接口 ControllerParamVo
内部接口 InnerControllerParamDto
开放接口 OpenControllerParamDto
Maven 模块结构
<service>-model        POJO + MapStruct
<service>-client       HttpExchangeClient 接口定义
<service>-xxx-starter  业务相关 starter
<service>-xxx-sdk      业务相关 sdk
<service>-biz          业务模块(controller/service/repository)
<service>-boot         启动模块
biz 代码分层
- biz/common/exception
- biz/common/util
- biz/模块A/controller/{innerapi, api, openapi}
- biz/模块A/service/xxxService
- biz/模块A/repository/{mapper/xxxMapper, xxxRepository}
接口路径前缀
  • /api → 前端接口(需网关鉴权)
  • /inner-api → 服务间内部调用(无需鉴权)
  • /open-api → 开放接口(需开放平台鉴权)

输出约束

  • 回答时必须标注规范条款编号(§章节号)
  • 涉及代码示例时,从 references/java-coding-spec-v1.md 对应条款提取,不自行编写
  • 涉及框架/工具选型时,优先引用统一框架能力,参见 eliteforge-framework-specification
  • 涉及版本号时引用规范原文,不臆造具体版本
  • 规范未覆盖的场景,标注"需用户补充或需外部确认"

参考资料

  • 规范全文(行号索引):references/toc.md
  • 规范全文:references/java-coding-spec-v1.md

评论

支持 Markdown