用途:为 Spring Boot 服务中的 Java 17+ 代码提供可读性与可维护性规范,适用于编写或评审 Java 代码、约束命名/不可变性/异常处理约定,以及使用 record、密封类、模式匹配等新特性时。
主要能力: 命名:类与 record 用 PascalCase,方法与字段用 camelCase,常量用 UPPER_SNAKE_CASE。 不可变性:默认不可变,优先使用 record 和 final 字段,减少共享可变状态;实体只提供 getter。 Optional:find* 方法返回 Optional,使用 map/flatMap 而非 get(),缺失时抛出领域异常。 Streams:用于转换且管道保持简短,避免复杂嵌套流导致可读性下降。 异常:领域错误使用非受检异常并建立领域专属异常,技术异常携上下文包装;避免宽泛 catch。 泛型:避免原始类型,声明泛型参数,可复用工具优先有界泛型。 项目结构:Maven/Gradle 下采用 config、controller、service、repository、domain、dto、util 的包布局,测试目录与 main 对应。 风格:缩进空格数遵循项目统一标准,每个文件一个公开顶层类型,方法短小聚焦,成员按常量、字段、构造器、公开方法、protected、private 排序。 其他:避免长参数列表、深层嵌套、魔法数字、静态可变状态与静默 catch;使用日志记录并保留上下文;空值尽量用 @NonNull,输入配合 Bean Validation(@NotNull、@NotBlank);测试建议 JUnit 5 + AssertJ,Mockito 用于模拟,测试保持确定性,不使用隐藏 sleep。
使用方式:安装与调用命令、版本要求等暂未提供。 限制:资料未说明该规范的具体强制工具、检查配置以及与现有 linter 的集成方式。