SuperAPI AI 工具集

capabilities-layer

前端与建站

查看项目

更新于 10-15 07:54

技能介绍

用途

Capabilities Layer 提供了一组在 src/app/capabilities 下实现功能的架构模式,目标是把每个能力作为独立的限界上下文(bounded context)交付,使能力之间只通过事件和工作区上下文进行交互,从而降低耦合、保持各能力的凝聚力。

主要能力与结构规则

  • 每个能力应保持内聚:包含 UI、应用编排,以及(在需要时)领域模型。
  • 禁止为业务逻辑创建跨能力的导入;能力之间通过事件通信。

状态管理

  • 使用 @ngrx/signals 存储作为能力状态的唯一来源。
  • 通过 computed signals 派生视图状态;避免可变数组/对象,避免使用 .push()。
  • 异步副作用通过 rxMethod + tapResponse 运行,并显式选择操作符。

事件驱动交互

  • 在持久化之后发布领域/应用事件(append-before-publish,先追加后发布)。
  • 在应用存储/副作用中订阅事件,而不是在表现层组件中订阅。

UI 规则

  • 使用独立(standalone)、无 zone(zone-less)的组件。
  • 模板仅绑定 signals,并使用 Angular 控制流语法(@if、@for、@switch、@defer)。
  • 仅使用 Material Design 3 token;不得硬编码颜色。

数据边界

  • 基础设施返回 Observable/Promise;在模板使用前转换为 signals。
  • 不得将 Firebase/DataConnect DTO 泄漏到集成/基础设施之外。

测试期望

  • 对存储状态转换编写单元测试,覆盖关键流程。
  • 使用 Playwright 覆盖 happy path(正常路径)。
  • 使用稳定的选择器(data-testid、roles/labels)。

适用场景

适用于采用 Angular 与 @ngrx/signals 的前端项目,尤其是需要将功能按能力边界拆分、以事件驱动方式解耦、并统一状态与 UI 规范的代码库。

限制

资料未提供该模式的安装命令、版本要求、收费信息或具体代码示例;上述规则为架构约定,实际落地方式暂未提供。