随着业务越来越多,参与人员越来越多,相互之间任务不明确,开发耦合,代码重叠修改,协调效率低下,动一发牵全身。
**问题:**上述情景在APP的迭代开发,人员变更是必然存在的~,~这就给了我们理由去重构我们的代码了,毕竟一个好的程序猿是为了解决问题而生,而不是单纯码代码。


###组件化###
首先先来了解组件化 定义:组件化就是基于可重用的目的,将一个大的软件系统按照分离关注点的形式,拆分成多个独立的组件。 简单点:不同功能做成一个组件,达到可重用目的。再不懂看上面的图。 讲道理~
- 首先看看年轻时候写的代码
这种代码相信很多猿年少轻狂都会写过吧,复制粘贴。但是作为一个会进化的猿,是谁给你的勇气再写这样的代码的?梁静茹吗?
- 那好,我们再来看看可重用的做法
这种应该很常见,层级分明。但是转身一想,还记得我们文章的开头吗? 随着业务越来越多,参与人员越来越多,相互之间任务不明确,开发耦合,代码重叠修改,协调效率低下,动一发牵全身。
- 行,产品是爸爸,你说加就加。你有张良计我有过墙梯。你不逼我我都不进步。
回看组件化的思想,不同功能做成一个组件,可重用
APP有一个壳工程(主工程),然后有着各种功能的基础组件(网络、数据库、图片加载等)。然后负责登录组件的开发童鞋只需要在主工程和基础组件的基础上开发登录组件即可,达到了代码重用、解耦。可开发可测试。其他业务组件同理。 但是现实是这样吗?想多了吧。 举个栗子:用户操作组件需要什么?用户。用户哪里来?登录来的。那好,登录组件和用户组件就存在了一定的耦合,用户组件必须依赖登录组件。 或许你会说:“这还不简单,一个壳工程和基础组件加上登录组件、用户操作组件一起开发就行。” 想法是好,那假如业务组件需要依赖多个业务组件呢?这个业务组件也需要依赖另一个业务组件呢?不同模块下跳转?隐式跳转?

- 接下啦要掏出我们的大宝剑。要解决上面的耦合,隆重介绍主角——路由(Router)。对路由的了解可以看这篇文章Android架构思考(模块化、多进程)