用途:把大型代码库组织成边界清晰的模块,让团队获得接近微服务的自治,同时避免分布式系统的运维复杂度;当内部模块依赖纠缠拖慢发布速度,或当下单体更易运维但未来需要演进为服务化模型时适用。当系统已是微服务、或应用很小、模块边界只会增加不必要的复杂度时不宜采用。
主要能力与做法:按业务能力或领域驱动设计中的限界上下文识别模块边界;用语言级可见性修饰符、独立包或命名空间封装模块内部实现;每个模块仅通过定义良好的门面、API 或事件暴露功能,禁止模块间直接访问数据库表或直接调用实现;用自动化测试在出现被禁止的依赖或包引用时让构建失败;持续跟踪变更耦合度与部署范围等指标,据此决定何时把模块拆分为独立服务。
交付物:记录模块边界及共享代码规则的架构决策记录(ADR);模块间每个交互点的正式契约文档(如 OpenAPI 规范、事件 schema);自动化依赖检查,以及每个模块专用的 CI/CD 作业以强制边界。
风险与缓解:边界可能退化为“大泥球”,应把任何越界视为破坏构建的错误并严格代码评审;共享数据库热点可能成为瓶颈,应明确 schema 归属、用视图限制数据可见性或以数据复制降低耦合。工具组件包括 dependency-analyzer(构建模块依赖图、发现被禁止的边)、module-boundary-enforcer(模块跨边界导入时使构建失败)、refactoring-planner(按可提取性对模块排序,为将来拆分做准备)。
限制:本技能的具体安装方式、命令与运行环境未在资料中提供,需参考其文档。