Files
OpenIsle/backend/AGENTS.md

2.4 KiB
Raw Permalink Blame History

Backend 协作指引

1) 适用范围

  • 作用于 backend/ 目录及其子目录。
  • 若与根 AGENTS.md 冲突,以本文件为准(仅后端范围)。

2) 代码结构心智模型

  • controller/:接口层(入参校验、权限边界、响应格式)。
  • service/:业务编排与领域规则(核心逻辑放这里)。
  • repository/JPA 数据访问(基于实体与查询方法)。
  • model/:实体模型与枚举。
  • dto/ + mapper/:对外契约和映射转换。
  • config/安全、缓存、MQ、OpenAPI、初始化器等基础设施配置。
  • search/OpenSearch 索引与事件驱动同步。

3) 后端修改规则

  • 控制器保持“薄”,复杂逻辑下沉到 service/
  • DTO 变更优先考虑兼容性,避免无版本的破坏性字段删除/改名。
  • 新增接口时:
    • 补齐必要的鉴权规则(SecurityConfig)。
    • 补齐 OpenAPI 注解(@Operation@ApiResponse 等)。
  • 涉及缓存时,确认 CachingConfig 中缓存名、TTL 与失效策略一致。

4) 重点一致性检查

  • 鉴权与公开接口:
    • src/main/java/com/openisle/config/SecurityConfig.java
  • 搜索索引同步(实体字段/文案变更时):
    • src/main/java/com/openisle/search/SearchDocumentFactory.java
    • src/main/java/com/openisle/search/SearchIndexEventPublisher.java
  • 消息通知链路(评论/通知相关):
    • src/main/java/com/openisle/config/RabbitMQConfig.java
    • src/main/java/com/openisle/config/ShardingStrategy.java
    • src/main/java/com/openisle/service/NotificationProducer.java
  • 环境变量消费面:
    • src/main/resources/application.properties
    • 根目录 .env.example

5) 数据与事务注意事项

  • 涉及多表写入时,明确事务边界,避免半成功状态。
  • 避免在 Controller 直接操作 Repository。
  • JPA 懒加载对象对外返回前应通过 DTO 映射,避免序列化副作用。

6) 测试与验证

  • 首选全量:mvn test
  • 变更集中时可先跑目标测试(示例):
    • mvn -Dtest=PostControllerTest test
    • mvn -Dtest=SearchServiceTest test
  • 涉及搜索/MQ 配置时,至少完成一次启动级验证或关键集成测试。

7) 输出要求

  • 明确列出“接口/字段/权限/事件”是否发生变化。
  • 若影响 mcp/docs/,在结果中显式提示需同步改动。