当经过学一遍又一遍,改一遍又一遍,觉得学不懂想哭的时候,我挑选了抛弃(洗澡),然后我悟了。

恰当开摆有益身心健康

当你纠结于文件该放在哪个包下,纠结于什么功用的代码应该放在哪个类中,所以在学习过程中不断修改,不断重构…开始了这样一个循环。

这有很大一部分原因是由于不统一,架构是一种规划思想,并且大部分是由国外公司、大牛提出,首先在言语了解上就会有一定的差异和误解,假如咱们能正确了解规划准则,就能够事半功倍。

就比如并发和并行,看过很多关于这两个的解释便是:并发是多个任务交替使用CPU,同一时刻只要一个任务在跑;并行是多个任务同时跑。

其实便是一种误解,【并发】和【并行】描述的是两个频道的工作。并发是一种处理办法,通过拆分代码,各部分代码互不影响,这样能够充分利用多核心。所以假如想让一个工作变得容易【并行】,先得让拟定一个【并发】的办法。假使一个工作压根就没有【并发】的办法,那么无论有多少个能够干活的人,也不能【并行】。

回到MVX架构,关于怎么样分包,怎么样拆分代码,我觉得应该从思想原理下手,由于文章的写法是各个作者了解,他们的了解不一定便是正确的,包含我。

就以谷歌推荐的架构准则来说,它有以下4点:别离关注点、通过数据模型驱动界面、单一数据源、单向数据流;推荐的架构图如下:

看了十几篇MVX架构的文章后,我悟了...

依照上面这张图,咱们在Activity中写界面和界面的展示的数据,现在回看架构准则第一点”关注别离点”,所以咱们把界面和界面的数据拆分隔,这个过程是自然而然的,所以我更倾向于发挥自己的想象力去把架构完成好,而不是去进行拙略的模仿,现在回想起来20年时我在写项目的时候会自己思考怎么去改进,所以自然而然添加了事情和状态(单向数据流),而在之前我并没有去看关于这方面的文章。

当你学习累了,那就大喊一句“开摆”,什么屁架构文章一边去,不学了。(优异的文章仍是值得咱们学习的,这里仅仅我的情绪宣泄)

也许回过头你就学会了,这并不是什么魔法,而是把你从一个深坑中拉了出来,让你的大脑能换个方向思考问题。

咱们需求重点学习的是规划准则,剩余的便是发挥咱们的想象力。

相关材料

怎么了解:程序、进程、线程、并发、并行、高并发? – 大宽宽 知乎 (zhihu.com)

使用架构指南 | Android 开发者 | Android Developers (google.cn)