阅读 276

模块化日常:库间互相依赖

主角:BKit

起因:某同学需要抽离用户登陆与注册逻辑独立为 AModule 模块,做到一半发现需要依赖 BKit 组件,而由于众所周知(大家都知道,然而就是没人管)的原因,这个组件并不能单独编译,这样的话 AModule 模块也没法编译了(发不发版另算,现在是编译都没办法进行的问题)。

经过:于是我就临时做起了使 BKit 编译通过的任务(因为本来就说好要拆分它,不过不是现在,所以不能立刻 / 马上就能见效)。上手就发现,BKit 依赖了一个名为 PService 的库,然后去看了一眼这个库,CocoaPods 没发版。Clone 之,编译失败,看了一眼,PService 依赖了 BKit 库。干得漂亮,又给绕回去了。你们俩这么藕断丝连,当初为啥不放在一起呢?然后琢磨起 PService 代码,发现 BKit 主要是用到了其中的一个 model,没有其他引用了。遂将该 model 从 PService 移到了 BKit,俩库都编译成功,皆大欢喜,大功告成(中间因为 podfile 少加一个 source 找了俩小时,嗯,要坚强)。

结论:组件化是个坑,踩下去的同学才知道有多深。


如有任何知识产权、版权问题或理论错误,还请指正。
https://juejin.im/post/6844903543992909832
转载请注明原作者及以上信息。