SuperAPI AI 工具集

domain-entity-reference-direction

智能体与模型

查看项目

更新于 10-15 20:13

技能介绍

用途:在两个领域实体存在关联时,判断每个实体是否需要持有对另一实体的引用,以及引用方向。判断依据是实体自身的领域职责(不变量与行为),而非读取或查询的便利性。

主要能力:

  • 判断某引用是否由实体自身的不变量或领域行为所必需;若实体在任何不变量检查或领域行为中都不使用该引用,则该引用不应放在实体上。
  • 识别仅为查询或展示而添加的引用,并建议改为仓储查询操作,例如 orderRepository.findManyByCustomerId(customerId)。
  • 对两个方向分别独立评估:A 是否需要知道 B、B 是否需要知道 A,各自判断。
  • 双向引用需两侧都有独立领域理由才成立,例如 Team 持有 memberIds 以限制队伍人数上限,Player 持有 teamId 以限制不能同时属于两队。
  • 需求不明确时,向人类确认,说明两个实体、拟议方向及不明确的原因。

使用方式:

  • 添加引用前先说明领域理由:哪个不变量或领域行为需要它;没有则不添加。
  • 单向关系(常见情况):只在需要该引用实现自身领域逻辑的实体上添加,反向需求通过仓储查询解决。
  • 双向关系(少见):确认两侧各自独立需要,并明确记录双向的理由。
  • 移除无理由引用时:确认没有领域行为或不变量依赖它,并把查询职责移到仓储。

适用场景:定义或修改持有引用的领域实体、引入两个领域实体之间的新关系、为查询或展示目的添加引用、审查现有引用是否由领域行为支撑。

限制:资料未提供具体语言、框架或工具链要求;示例使用 TypeScript、Python、Kotlin 风格代码,仅为说明。是否采用该技能需结合项目实际领域模型判断。