美文网首页iOS开发小知识点积累移动开发iOS Developer
某商城组件化方案与我部门方案对比

某商城组件化方案与我部门方案对比

作者: 王方帅 | 来源:发表于2017-04-17 09:22 被阅读102次

    某商城方案:

    1,在官网上申请组件开发,提交审核
    2,商城架构组审批通过后自动创建git仓库并分配给组件创建人,自动创建基于cocoapods带demo的私有库文件,创建的工程中自动加入Router的路由库,podspec配置信息,一些基础组件库及页面容器(h5容器,viewController容器,做一些公用的基础服务)
    3,组件创建人可以添加erp共同开发组件,由于组件自带example,可以独立调试,组件中可以直接用Router调用其他组件(个人感觉调用时需要cocoapods进行组件库引入)
    4,组件独立调试完毕后接入商城主app进行集成测试,其间如果发现有UI需要调整或集成中有bug需要组件修改后重新打包再次接入商城主app进行测试(较为耗时,是否可直接debug未可知)
    5,测试完毕提交组件库给架构组审核,审核通过后其他组件或主app可以通过组件名,提供的参数进行url调用或native调用
    6,商城中对各模块,页面容器进行了解耦,didFinishLaunching也进行了解耦,组件集成中需要指定在didFinishLaunching时需要进行的初始化操作。

    我部门方案:
    1,创建新的git仓库,或添加到一个已有的git仓库(同一类型的组件)
    2,手动用cocoa pods创建带demo的私有库文件,podspec需要自己修改(优化点:可以创建一个模板,手动替换后再修改),不带Router的路由库
    3,组件带example,可以独立调试,要引入其他组件需要用cocoapods手动导入并pod update(优化点:可以做一个带基础组件库的podfile模板)
    4,组件独立测试完毕后接入主app进行集成测试,其间发现有UI需要调整或集成中发现bug时可以手动开启一下集成调试模式(即注掉podfile中的常规组件引入方式,将组件库文件夹整体拖入到工程中,不勾选“Copy items if needed”),这时候可以直接修改文件及运行debug调试
    5,集成测试完后,重新打包组件库,打tag,在主工程中用cocoapods来导入组件
    6,目前我部门中是新加功能尝试解耦组件,模块还没有解耦,新app准备模块解耦,分git库,didFinishLaunching也可以解耦处理

    参考组件化方案:https://casatwy.com/iOS-Modulization.html

    路由方案对比
    1,OpenURL 蘑菇街
    需要提前注册url,可能要缓存响应的对象,占用内存
    2,CTMediator 安居客,百联
    用mediator和target-action模式进行动态调用,可以提供给外界组件调用的接口写在category中,用到时才缓存相应的对象,用完可选择释放,调用时需要的参数根据方法名可知
    3,某商城Router
    虽然采用url类似的接口形式(router://ProductModule/showProduct?pid=1&sid=2),但是内部实现要比蘑菇街好,也是用到时才创建对象,内部也是runtime动态调用,需维护一个配置表,类似CTMediator的category方式,参数需看文档才可知

    相关文章

      网友评论

        本文标题:某商城组件化方案与我部门方案对比

        本文链接:https://www.haomeiwen.com/subject/tsozattx.html