SuperAPI AI 工具集

java-coding-standards

编程与开发

查看项目

更新于 10-15 21:09

技能介绍

用途:为 Spring Boot 项目中的 Java 17+ 代码提供统一编码规范,适用于编写或评审 Java 代码、约束命名与不可变性、异常处理约定,以及使用 record、sealed class、模式匹配、Optional、Stream 和泛型时参考,也用于规划包结构与项目布局。

核心原则:清晰优先于炫技;默认不可变,尽量减少共享可变状态;快速失败并抛出有意义的异常;保持命名与包结构一致。

主要约定:类与 record 用 PascalCase,方法与字段用 camelCase,常量用 UPPER_SNAKE_CASE;优先使用 record 和 final 字段,只提供 getter。find* 方法返回 Optional,用 map/flatMap 替代 get(),缺失时用 orElseThrow 抛出领域异常。Stream 用于转换且管道保持简短,复杂嵌套改用循环。领域错误用非受检异常,技术异常包装上下文,避免宽泛的 catch (Exception ex)。避免原始类型,声明泛型参数,可复用工具优先有界泛型。

项目结构:src/main/java 下按 config、controller、service、repository、domain、dto、util 分包,资源放 src/main/resources,测试目录镜像主目录。格式上缩进统一为 2 或 4 空格,每个文件一个公开顶层类型,方法短小聚焦,成员顺序为常量、字段、构造器、公开方法、protected、private。

需避免的坏味道:过长参数列表改用 DTO 或 builder;深层嵌套改用提前返回;魔法数字改为命名常量;静态可变状态改为依赖注入;静默 catch 需记录并处理或重新抛出。日志使用 LoggerFactory,如 log.info("fetch_market slug={}", slug)。空值处理上仅在必要时用 @Nullable,输入用 Bean Validation 注解。测试建议 JUnit 5 + AssertJ,Mockito 做 mock,保持确定性、避免隐藏 sleep。

限制:资料未提供具体安装命令、收费方式、支持平台或量化效果,暂未提供。