SuperAPI AI 工具集

separation-of-concerns

通用与其它

查看项目

更新于 10-16 02:33

技能介绍

用途:这是一套代码组织规范技能,核心心智模型是纵向与横向分离。纵向指某个功能(feature)的全部代码聚在一起,横向指被多个功能共用的能力。

主要能力:定义三类顶层目录。features/ 存放纵向功能,内部可含 entrypoint/、commands/、queries/、domain/、infra/;platform/ 存放横向能力,含 domain/ 与 infra/;shell/ 只做应用接线与路由,不含业务逻辑。库包同样使用 features/ 与 platform/ 结构,src/index.ts 为纯 barrel 文件,只做再导出。

规则要点:SoC-001 提供代码放置决策树,按启动接线、格式转换、写操作编排、只读查询、单功能业务逻辑、单功能基础设施、跨功能共享的顺序判断归属。SoC-002 要求依赖向内,entrypoint 可依赖 commands/queries,domain 不依赖任何 infra。SoC-003 禁止功能间交叉导入,共享逻辑提取到 platform/ 或独立领域库。SoC-004 规定 domain 不做 I/O。SoC-005 规定 commands 不含业务逻辑,只做加载、委托 domain、持久化。SoC-006 要求 entrypoint 只做翻译。SoC-007 要求每个 command 拥有独立输入类型。SoC-008 要求 queries 只读。SoC-009 禁止在 commands/ 与 queries/ 放辅助文件。SoC-010 要求按变更共置,禁止 types/、models/、validators/ 等按类型分组。SoC-011 要求外部服务包装放在 platform/infra/external-clients/。SoC-012 规定 infra/ 必须使用标准子目录,根目录不得放文件,并给出各子目录的访问权限表。SoC-013 至 SoC-015 分别要求意图与执行分离、依赖不同状态的函数分离、无共同命名概念的函数分离。

使用方式:在设计、实现、重构或评审代码时逐条核对 SoC-001 至 SoC-015,评审时对每条规则给出 PASS、FAIL(注明文件与行号)或 N/A。

适用场景:需要明确分层与目录约定的项目,尤其是同时包含多个功能模块与共享能力的应用或库。

限制:资料未提供安装命令、触发词完整列表、收费与平台支持信息;小型工具、配置或 schema 包若无领域逻辑可完全排除该架构。