跳到主要内容

组件化最佳实践

问题

组件化落地有哪些实践经验和常见问题?

答案

模块分层

关键原则
  • 上层可以依赖下层,下层不能依赖上层
  • Feature 模块之间不能直接依赖,通过路由/协议通信
  • Core 层放可复用的业务无关能力

常见问题与解决

问题解决方案
资源访问(图片、xib)使用 Bundle(for: Self.self) 定位模块 Bundle
模块间传值路由参数 / 共享协议
公共 Model放在 CoreInterface 层,各模块共享
模块独立运行每个 Feature 提供 Demo Target
循环依赖提取公共协议到更底层

渐进式落地步骤

  1. 基础层抽取:网络、存储、日志等通用能力
  2. 定义接口层:模块间通信协议
  3. 逐个拆分 Feature:从最独立的模块开始
  4. 建立 CI 门禁:禁止违规依赖

常见面试问题

Q1: 组件化的优缺点?

答案

  • 优点:编译加速、团队并行开发、模块复用、独立测试
  • 缺点:初期改造成本高、维护分仓增加运维工作、过度拆分反而增加复杂度

Q2: 何时该做组件化?

答案:当团队超过 5 人、代码量超过 10 万行、编译时间超过 5 分钟时,组件化的收益开始大于成本。

相关链接