架构杂谈(Android、Web)
五一去了北戴河,五一的北戴河真是 轮滑的天堂。
因为最近公司让学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模式重构代码
http://www.jianshu.com/p/7c4e310da409?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
把PPT也分享一下吧,顺带把模板也分享了,我是从模板上改的。
http://pan.baidu.com/s/1bp9dIzX
同样欢迎各位,批评指正。
看到不错的关于 Android 架构的文章以后都收集一下放到这。
Android架构思考(模块化、多进程)
- 感谢你赐予我前进的力量