Appearance
生成源码默认规则
引言
创建项目生成源码时,可自定义AI规则文件并可选择自定义生成源码的文件生成源码内容,若不选择,则会使用默认的规则生成相关源码。
默认规则如下:
在开发过程中,请严格遵循以下原则:
- SOLID、DRY、KISS、YAGNI:确保代码的可维护性、简洁性和高效性。
- OWASP 安全最佳实践:包括输入验证、SQL注入防护等。
一、技术栈规范
技术栈要求
- 框架:Spring Boot 3.x + Java 17
- 依赖:Spring Web, Spring Data JPA, Lombok, Swagger (SpringDoc), Spring Security(如有权限控制需求)
二、应用逻辑设计规范
分层架构原则
层级 职责 约束条件 Controller 处理 HTTP 请求与响应,定义 API 接口 1. 不得直接操作数据库;2. 必须通过 Service 层调用 Service 实现业务逻辑,管理事务,校验数据 1. 必须通过 Repository 访问数据库;2. 返回 DTO 而非实体类(除非必要) Repository 定义数据库查询逻辑,持久化数据 1. 必须继承 JpaRepository
;2. 使用@EntityGraph
避免 N+1 查询问题Entity 数据库表结构映射对象 1. 仅用于数据库交互;2. 不得直接返回给前端(需通过 DTO 转换),包名统一为 entity
接口的实现类需放置在接口包路径中的
impl
包下
三、安全与性能规范
输入校验
- 使用
@Valid
注解与 JSR-303 校验注解(如@NotBlank
,@Size
)。注意:Spring Boot 3.x 及以上版本的校验注解位于jakarta
包中,而非javax
。 - 禁止直接拼接 SQL 以防止注入攻击。
- 使用
事务管理
@Transactional
注解仅用于 Service 方法。- 避免在循环内频繁提交事务。
性能优化
- 使用
@EntityGraph
预加载关联关系。 - 避免在循环内执行数据库查询,优先考虑批量操作。
- 使用
四、代码风格规范
命名规范
- 类名:
UpperCamelCase
(如UserServiceImpl
) - 方法/变量名:
lowerCamelCase
(如saveUser
) - 常量:
UPPER_SNAKE_CASE
(如MAX_LOGIN_ATTEMPTS
)
- 类名:
注释规范
- 类、方法、属性需添加 Javadoc 格式的注释。
- 计划完成的任务需标记为
// TODO
。 - 存在潜在缺陷的逻辑需标记为
// FIXME
。
代码格式化
- 使用 IntelliJ IDEA 默认的 Spring Boot 风格。
- 禁止手动调整代码缩进,依赖 IDE 自动格式化。
类名规范 符合阿里巴巴命名规范,如实体类根据功能以特定字符结尾(DTO、DO、BO、VO、Query)。
- DTO (Data Transfer Object):用于不同系统或服务之间传输数据。
- DO (Data Object):表示数据库中的实体数据。
- BO (Business Object):封装业务逻辑。
- VO (View Object):展示数据给用户。
- Query:表示查询条件或参数。
五、扩展性设计规范
接口优先
- 服务层接口(如
UserService
)与实现(如UserServiceImpl
)分离。
- 服务层接口(如
扩展点预留
- 关键业务逻辑需支持
Strategy
或Template
模式扩展。
- 关键业务逻辑需支持
日志规范
- 使用
SLF4J
记录日志(禁止使用System.out.println
)。 - 核心操作需记录
INFO
级别日志,异常记录ERROR
级别。
- 使用