用途:该技能扮演资深系统架构师角色,指导在 Gravito 框架中按企业级 MVC 标准构建可维护的大型应用,强调严格的关注点分离与抽象分层。
目录结构:采用固定企业标准布局,src/ 下分 Http(Controllers、Middleware、Kernel.ts)、Services、Repositories、Models、Providers(AppServiceProvider.ts、DatabaseProvider.ts、RouteProvider.ts)、Exceptions,以及 bootstrap.ts 入口与 routes.ts 路由;另含 config/(应用、数据库、认证、缓存、日志)和 database/(migrations 与 seeders)。
分层职责:Controllers 为薄层,不含业务逻辑,负责解析请求、调用服务、返回 JSON,并继承基础 Controller 使用 this.success() 与 this.error();Services 为厚层,是业务“大脑”,编排业务逻辑、调用多个仓储、触发事件,使用构造器注入仓储;Repositories 单一职责,仅处理 SQL/Atlas 查询,吸收数据库复杂度且不含业务规则;Models 为 Atlas 实体,在此定义关系。
代码蓝本:基础 Controller 提供泛型 success 辅助方法;Service 通过构造器注入仓储,例如 constructor(private productRepo = new ProductRepository()),并提供 create 方法调用仓储保存。
工作流:依次为模式设计(database/migrations/)、模型实现(src/Models/)、仓储实现(src/Repositories/)、服务实现(src/Services/)、控制器实现(src/Http/Controllers/)、路由注册(src/routes.ts)。
最佳实践:依赖反转,高层服务不依赖底层数据库细节,以仓储作为适配器;需要单例的核心服务应在 AppServiceProvider 中注册;控制器中可多次使用 c.get('parsed_body') 安全读取请求体,实现请求体缓存。
限制:资料未提供安装命令、依赖版本、具体 API 细节、收费信息或运行环境要求,相关内容暂未提供。