架构杂谈(Android、Web)

281 阅读4分钟

如果本文帮助到你,本人不胜荣幸,如果浪费了你的时间,本人深感抱歉。 希望用最简单的大白话来帮助那些像我一样的人。如果有什么错误,请一定指出,以免误导大家、也误导我。 本文来自:www.jianshu.com/users/320f9… 感谢您的关注。

五一去了北戴河,五一的北戴河真是 轮滑的天堂。

因为最近公司让学PHP,很久没有更新文章了。心里真是有点过意不去呀。 学了两个星期左右的PHP,三天熟悉语法,然后跟着项目边做边学,直接上框架,用的Laveral。两周时间,做完了练手项目:设备管理系统。然后接下来进行正式项目升级,负责Android,参与Web。

我们公司每周每个组进行一次讲座分享,上周是我们组,我是主讲,分享的是框架方面的。因为是很早很早以前就想写写这个,趁这个机会刚好分享一下。

但是!!!!! 接触了后台之后,发现后台的框架设计跟前端的区别真大挺大的。 侧重点好像就不太一样。 所以最后的Web端框架,只是分享一个链接,我觉得写的很不错。

每个模块底下都附了链接来源,感兴趣的可以直接去看看。 这是我做的PPT,转为图片贴上,做简单说明。

目录


架构是什么

如同右边第一张图,将零碎的积木进行有序的重组,使其不断的完善,也就是架构存在的意义。

下面两个是好的架构师应该具备的条件。 右边那张图,“抽象思维”和“透过问题看本质” 应该是架构师最顶层的能力,即使你拥有其余的所有能力,但是缺少这两个最顶层的能力,写出来的东西,仍然可能会产生,我们接下来要看的东西。(接下往下看吧。)

参考链接:在首席架构师眼里,架构的本质是……


为什么我看不懂你的代码

总结一句话:在你写代码的时候,你的脑子里会有一个完整的逻辑模型。你要尽可能的将你脑中的逻辑模型平滑的转化为你写的代码,让你过了一段时间之后、或者另外一个人 看到你的代码(或者根据注释),能够尽可能的重现出你当时写代码时脑海中的逻辑模型。

参考链接:为什么我看不懂你的代码


App架构只组件化理解

这个主要讲的是MVP里面的M,因为V和P划分的比较开。 在实际写代码的过程中M往往的相当复杂的。 这一块其实是有很多方面可以研究的,最近比较流行的一篇文章: 完美的安卓 model 层架构

参考链接:App架构之组件化理解


大谷歌的一张图,在Google出的几个 Android MVP 的案例中,这个是其中一个。结构非常清晰。

GitHub地址:todo-mvp-clean/

这里借用了EventBus的图, 感觉张图的 MVP 逻辑也挺清晰的,包括M层的封装。 这里提到了如何正确使用开源项目,也是属于model层的内容。

参考链接:如何正确使用开源项目?


Web端架构了解

本来还想斗胆讨论Web端的架构,想想真是太天真了。 Web架构水太深,可以点进链接了解一下。

看完之后应该是可以总结出一些东西的:任何架构都不是一开始就很完善的,都是随着公司的发展,业务逻辑的发展,随着客户的需求,当前项目无法满足需求,才开始扩展。你不可能从第一步就把第十步的情况都考虑到,那你的项目写完都不知道要写什么时候去了。 所以在写项目的时候,用最简单的办法去处理当前项目的需求,把当前的每一个小功能尽可能的写的灵活利于扩展就可以了。切勿建立太过复杂的逻辑模型,因为你真的不确定,以后的项目会朝着什么方向发展。你确定你留着所谓的强大的逻辑模型,真的能够用得上吗? 当然这个是Web,相比Web来说,移动端的结构还真是比较简单一点。

参考链接:大型网站系统架构的演化


看到了一篇讲MVP的文章,感觉非常不错。对MVP缺点、优点的分析,跟我的想法是一致的。 在这里跟大家分享:使用MVP模式重构代码 www.jianshu.com/p/7c4e310da…



把PPT也分享一下吧,顺带把模板也分享了,我是从模板上改的。 http://pan.baidu.com/s/1bp9dIzX
同样欢迎各位,批评指正。

看到不错的关于 Android 架构的文章以后都收集一下放到这。 Android架构思考(模块化、多进程)