美文网首页
项目组件化代码历程2019-11-05

项目组件化代码历程2019-11-05

作者: bridegg | 来源:发表于2019-11-05 18:29 被阅读0次

    最近公司因为一些原因,需要对android项目进行组件化。之前android的项目有三个app,基类和工具类与业务混在一起,三个app的基类也混在一起,通用布局中存在业务图片,jar包混乱引用,弹框类各种各样。于是我拆分代码头大了,这篇文章记录我拆分代码的历程,以便我以后遇到类似总结经验,以便我遇到类似问题的时候,不会同现在一样变成无头苍蝇乱撞

    2019-11-05

    开始执行任务

    项目结构拆离

    目前有三个app,M,D,S(不透露app名称),我准备将每个app分为基类层,接口层,中间层三个大层,然后通过中间层的方式是适配不同app的独特性,最后将接口层和基类层通过求同存异的方式合并。
    先从其中一个app-D下手,不考虑三个app的可复用性,只为了将D这个app的层级拆离,分离成三个Lib项目和一个业务没有拆分的app项目 base,baseAPI,DAPI,app

    初步计划

    1、将最基本的,没有任何第三方引用,纯手写的轮子从业务剥离,提取到base里
    2、将第三方的轮子和轮子的封装方法、可复用性超强的代码提取到baseAPI里(目前不做详细的base和baseAPI分离,日后可以根据功能和详细的分层再处理base和baseAPI的分离)
    3、将Dapp特有的使用频率极高的类和方法,封装到DAPI中,DAPI作为中间层,负责对接baseAPI,base,中必须复用但代码使用方式不一致的代码。

    实施过程

    创建base项目,创建baseAPI项目,将Dapp中基类copy到base项目,然后将所有第三方引用直接移动到baseAPI,将所有包含业务的代码和使用第三方的代码删除,最终只剩下权限类,加密类,一写常用接口,验证工具类,吐司和UI适配相关代码。
    在创建过程中发现,有些Util使用频率较高,但是需要获取到程序的application的上下文,app版本等一些信息。于是在base项目中创建抽象BaseApplication并创建BaseAPIInterface接口,来获取app版本号,版本名称等一些app中才包含的特殊属性
    将一些公共方法都抽取出来后,发现很多纯工具类中偶尔穿插着一些业务,比如网络请求,目前网络请求中包含着一些用户信息,解析中包含着D项目特有的数据属性

    解决方案

    今天没有解决,目前准备整理下所有包含业务和特殊数据特性的地方,然后通过接口或者数据缓存的方式处理

    相关文章

      网友评论

          本文标题:项目组件化代码历程2019-11-05

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