关于iOS组件化方案在Casa的iOS应用架构谈 组件化方案写得已经很清楚了。方案本身并不难,CTMediator的代码也只有100多行。关键是这个方案逻辑很严密,很多细节也都考虑到了,例如安全验证,动态跳转,跳转失败的处理。
我理解的要点有以下几个
- 组件化服务为OpenURL提供服务,而不是相反。openURL只是组件化功能的一个子集。
- 利用Objective-C的运行时,并不需要注册服务。
- 组件之间调用参数去Model化,这样才能避免组件之间的依赖,调用方只需要依赖CTMediator,被调用方不需要依赖CTMediator
- Category的使用,简化了组件的调用。
我原本以为我懂了,之前也照着作者的方案在项目里撸了一把。直到翻看了比文章还要长很多的评论,发现很多评论看不太懂,其中有一个吸引我的是加入登录判断怎么处理?决定在Casa代码的基础上撸一个。Casa快速响应评论真心让人尊敬,这样快速反馈真正的帮助到我们这些菜鸟的成长。
最后引用一下Casa对架构设计能力的看法:
架构设计能力不是随着项目的成长而获得的。蘑菇街项目也成长得很大了,但在组件化架构的设计上很明显没有成长起来。 架构设计能力是看逻辑的,跟你看多少书看多少代码有一定关系,但看书看代码相对于架构设计能力来说并不是决定性条件。