1.组件化有什么好处?
-
业务分层、解耦,使代码变得可维护;
-
有效的拆分、组织日益庞大的工程代码,使工程目录变得可维护;
-
便于各业务功能拆分、抽离,实现真正的功能复用;
-
业务隔离,跨团队开发代码控制和版本风险控制的实现;
-
模块化对代码的封装性、合理性都有一定的要求,提升开发同学的设计能力;
-
在维护好各级组件的情况下,随意组合满足不同客户需求;(只需要将之前的多个业务组件模块在新的主App中进行组装即可快速迭代出下一个全新App)
2.你是如何组件化解耦的?
-
分层
基础功能组件:按功能分库,不涉及产品业务需求,跟库Library类似,通过良好的接口拱上层业务组件调用;不写入产品定制逻辑,通过扩展接口完成定制;
基础UI组件:各个业务模块依赖使用,但需要保持好定制扩展的设计
业务组件:业务功能间相对独立,相互间没有Model共享的依赖;业务之间的页面调用只能通过UIBus进行跳转;业务之间的逻辑Action调用只能通过服务提供;
-
中间件:target-action,url-block,protocol-class