Skip to content

生成源码默认规则

引言

创建项目生成源码时,可自定义AI规则文件并可选择自定义生成源码的文件生成源码内容,若不选择,则会使用默认的规则生成相关源码。

默认规则如下:

在开发过程中,请严格遵循以下原则:

  • SOLID、DRY、KISS、YAGNI:确保代码的可维护性、简洁性和高效性。
  • OWASP 安全最佳实践:包括输入验证、SQL注入防护等。

一、技术栈规范

技术栈要求

  • 框架:Spring Boot 3.x + Java 17
  • 依赖:Spring Web, Spring Data JPA, Lombok, Swagger (SpringDoc), Spring Security(如有权限控制需求)

二、应用逻辑设计规范

  1. 分层架构原则

    层级职责约束条件
    Controller处理 HTTP 请求与响应,定义 API 接口1. 不得直接操作数据库;2. 必须通过 Service 层调用
    Service实现业务逻辑,管理事务,校验数据1. 必须通过 Repository 访问数据库;2. 返回 DTO 而非实体类(除非必要)
    Repository定义数据库查询逻辑,持久化数据1. 必须继承 JpaRepository;2. 使用 @EntityGraph 避免 N+1 查询问题
    Entity数据库表结构映射对象1. 仅用于数据库交互;2. 不得直接返回给前端(需通过 DTO 转换),包名统一为 entity
  2. 接口的实现类需放置在接口包路径中的 impl 包下

三、安全与性能规范

  1. 输入校验

    • 使用 @Valid 注解与 JSR-303 校验注解(如 @NotBlank, @Size)。注意:Spring Boot 3.x 及以上版本的校验注解位于 jakarta 包中,而非 javax
    • 禁止直接拼接 SQL 以防止注入攻击。
  2. 事务管理

    • @Transactional 注解仅用于 Service 方法。
    • 避免在循环内频繁提交事务。
  3. 性能优化

    • 使用 @EntityGraph 预加载关联关系。
    • 避免在循环内执行数据库查询,优先考虑批量操作。

四、代码风格规范

  1. 命名规范

    • 类名:UpperCamelCase(如 UserServiceImpl
    • 方法/变量名:lowerCamelCase(如 saveUser
    • 常量:UPPER_SNAKE_CASE(如 MAX_LOGIN_ATTEMPTS
  2. 注释规范

    • 类、方法、属性需添加 Javadoc 格式的注释。
    • 计划完成的任务需标记为 // TODO
    • 存在潜在缺陷的逻辑需标记为 // FIXME
  3. 代码格式化

    • 使用 IntelliJ IDEA 默认的 Spring Boot 风格。
    • 禁止手动调整代码缩进,依赖 IDE 自动格式化。
  4. 类名规范 符合阿里巴巴命名规范,如实体类根据功能以特定字符结尾(DTO、DO、BO、VO、Query)。

    • DTO (Data Transfer Object):用于不同系统或服务之间传输数据。
    • DO (Data Object):表示数据库中的实体数据。
    • BO (Business Object):封装业务逻辑。
    • VO (View Object):展示数据给用户。
    • Query:表示查询条件或参数。

五、扩展性设计规范

  1. 接口优先

    • 服务层接口(如 UserService)与实现(如 UserServiceImpl)分离。
  2. 扩展点预留

    • 关键业务逻辑需支持 StrategyTemplate 模式扩展。
  3. 日志规范

    • 使用 SLF4J 记录日志(禁止使用 System.out.println)。
    • 核心操作需记录 INFO 级别日志,异常记录 ERROR 级别。

邮箱:chendw@feisuanyz.com 邮编:518000 地址:深圳市前海深港合作区前湾一路1号A栋201室