SuperAPI AI 工具集

clean-architecture-ts

编程与开发

查看项目

更新于 10-16 05:53

技能介绍

该技能面向 Remix/TypeScript 应用,目标是分离关注点,避免 loader 和 action 演变为臃肿的“上帝函数”。

分层:Web 层(Loaders/Actions)负责解析请求、输入校验(Zod)和返回响应(JSON/Redirect),只做编排,不放业务逻辑;服务层承载业务规则、计算、错误处理与复杂流程,且与框架无关,不应感知 Request/Response;仓储层负责数据访问,与数据库(Prisma)、API(Shopify Admin)或文件系统交互,只有该层可直接操作 DB/API。

目录结构为 app/routes(Web 层)、app/services(业务逻辑)、app/repositories(数据访问)、app/models(领域类型/接口)、app/utils(纯函数)。

依赖注入:资料称可选但推荐,对复杂应用可用 tsyringe 等容器管理依赖,便于测试时 mock 仓储;示例中 OrderService 通过 @injectable 与 @inject 注入 OrderRepository 和 ShopifyClient。

错误处理:建议创建自定义错误类区分用户错误与系统错误,如 BusinessError 对应 422、NotFoundError 对应 404,并在 loader/action 中捕获后返回相应 HTTP 状态码。

限制:资料未提供安装命令、适用版本、性能数据或收费信息。