时间从来没有等过我们,岁月这把捅猪刀捅得你满脸都是沧桑。你一定是为工作操碎了心,不知道现在的身处何处,是否有挚爱的人照顾你,过得快乐或委屈?
哦忘了,你是个有故事的人,'你想ta过得比你要好,希望你永远不会知道'。
骚年莫慌,老夫带你撸个框架,进可重振雄风,退可养精蓄锐!
本篇适合什么样的人群看?
- 做Android有一段时间了,撸码就是一把梭。
- 项目开工,但是目前不知道怎么去拆分业务和技术依赖分层。
- 刚刚毕业出来,进了一家不大不小的公司一人单挑项目。
你能在本篇文章中收获什么?
- 自己动手搭一个通用型依赖框架
- 学习拆分业务层和技术层
- 吹吹水 装装哔
前言
本篇是从线上的APP中基于一次次的采坑、总结、分享抽离出来的。但由于商业原因具有不可公开性。所以不会提及任何与业务有关联的场景用例。以及不会包含与任何商用项目相干的提及。所有技术仅仅用于技术学习交流。本篇不会是一个纯代码讲解的文章。文本中的故事也是一个虚构的。具体技术实现请您移步篇尾。特此声明。
踩坑
什么?要求一个月后上线?老夫就是一把梭。复制粘贴东拼西凑就能出来。
上线一周后。小王啊。经过产品和老板讨论过后,我们下一步要把首页上的XX改一下。后面主流程不这样走了。你接下来…?
fuck!为毛你们之前不想好。这怎么改。代码是一大坨的。动一下可能就会导致到处都会崩溃。
项目中的代码是下面这样的

你叫劳资怎么改?当初是你说要一个月上线。这个项目的代码以前只有我和神能看懂。现在只有神了。
分析
想想就气人,都是你们这帮孙子逼逼逼,连夜加班一个月赶出来的东西。上线不到一周就要改。这下我可头大了。之前没有考虑到后期可能会出现维护或者扩展。改?还不要了我命。但也没有更好的办法了。只好默默的理代码了。

第二天项目里进来了一个看起来像dalao的气息的人,dalao看完会心一笑,小王啊。这个时候我们宁可重构一把也不可在原有的基础上改,救得了今天救不过明天。这样,我向上级申请延长一些时间,我们一起来重新设计一把架构把。
之前的项目结构:

dalao的项目结构:

实现
等一下,dalao。你直接给我上个图,我看不懂呀。并且也没有解释清楚怎么实现分离的呢。
dalao咳咳两声喃喃道:首先,我们整体的思路是让现在开发的APP去依赖AndroidBasicLibs,我们尽量做到精简只需要在Gradle依赖它就行了。
dependencies { compile 'xxx.xxx.xxx:AndroidBasicLibs' }




