rust-architecture
Installation
SKILL.md
Rust Architecture
用于规划和维护 Rust 项目结构。除固定技术词外,使用中文说明;按项目复杂度选择最小够用的结构,不为模板完整性创建空目录。
需要具体目录树示例时,读取 layouts。
架构概念
复杂应用只使用四个核心概念:domain、application、ports、adapters。
domain:纯业务核心,放实体、值对象、业务规则、状态流转、领域事件和纯校验逻辑。不得依赖外部框架、数据库、网络、文件系统、CLI、HTTP 或第三方 SDK。application:用例和流程编排,放应用服务、命令/查询对象、事务边界、权限/上下文检查、跨能力编排。可以依赖domain和ports,不得直接依赖具体外部实现。顶层目录使用application,不要用services或system作为层名;确实需要 service 组织形式时,放在application内部模块。ports:application需要的边界 trait,只为外部能力建立接口,例如数据库访问、对象存储、第三方服务、通知发送、时间、ID 生成、事务管理等。不要为普通 helper、纯内部函数或没有边界意义的逻辑建立 trait。adapters:外部世界的接入和实现。进入系统的 adapter 包括 HTTP 和 CLI;系统调用外部的 adapter 包括数据库、文件系统/对象存储、第三方服务等。adapters负责实现ports、转换外部类型、做错误映射和完成具体 IO。
Adapter 目录
只在项目确实使用对应能力时创建 adapter 目录,不创建空目录。