用途:该技能提供模块化单体架构的专家级协助,围绕有界模块边界、模块内部公开 API、解耦的包结构以及单一部署产物展开,适合中大型工程团队在不想承担微服务运维开销的前提下扩展代码库,也适合作为未来拆分微服务的准备阶段。
主要能力:强调严格模块封装与公开 API 门面,模块只能通过显式公开门面交互,内部仓储、模型与辅助代码不对外导出;支持进程内领域事件,模块间通过内存事件总线异步通信;可通过架构检查工具(如 eslint-plugin-boundaries 或 ArchUnit)在 CI 中强制边界规则。相比微服务,具备零延迟内存调用、本地事务一致性、统一工具链重构等优势。
使用方式:典型目录结构为 /src/Modules 下按领域划分模块(如 Catalog、Ordering、Shipping),每个模块含 Core 内部实现与 API 公开契约,/Shared 存放基础设施与事件总线。模块间通过接口或事件通信,例如 OrderService 注入 ICatalogModule 调用 GetProduct。可用 ESLint 的 boundaries/element-types 规则限制跨模块导入。
适用场景与限制:适合需要清晰领域边界、单一 CI/CD 流水线、单事务数据库迁移和本地 Docker 环境的团队。应避免跨模块外键连接、共享可变内存状态、过早拆分微服务。常见问题包括循环模块依赖、意外共享数据库表、模块抽象泄漏,需通过公开 API、按模块隔离 schema、返回不可变 DTO 解决。具体工具版本与配置细节资料未提供。