概念:
1.组件化是指解耦复杂系统时将多个功能模块拆分、重组的过程
2.把复杂系统拆分成多个组件,分离组件边界和责任,便于独立升级和维护,把独立模块拆分,也有利于快速把基础模块提供给其他APP使用。
3.去除模块间的耦合,使得每个业务模块可以独立当做App存在,对于其他模块没有直接的依赖关系。 此时业务模块就成为了业务组件
优点:
提高协作效率:按模块解耦,开发效率高。
加快编译速度:不需要修改的组件二进制依赖,项目编译时间可以缩短很多
功能重用:可复用功能模块向其他APP搬迁时成本低
不足:
组件通讯比较不方便
多组件相互依赖后,代码升级比较麻烦
方法论:
纵向分层:核心基础组件、通用基础组件、业务基础组件、业务组件
核心基础组件:全网APP都可以使用的:网络库封装、工具类集合等等
通用基础组件:小冰内部所有APP都可以使用的基础组件:Log库、埋点库等等
业务基础组件:基于一些业务形态封装的基础组件,可以提供给接入了小冰组件化架构的APP使用,可深度定制化:IM数据组件、支付功能组件、首页框架组件等等
业务组件:各个APP自有组件、其他APP可以完全复制在自我迭代,或完全复用相同业务功能。
组件化过程需要解决的几个核心问题:
组件拆分原则:单一功能小组件?混合功能大组件?
组件代码管理方式:大APP模式?单一APP模式?
组件间通讯方式:
页面路由方式:
组件管理工具:
公共类库管理问题:如何避免信息不对称导致的重复造轮子
网友评论