移动端技术分享会1

参考文章:
https://juejin.cn/post/6854573206700130317

一、移动端架构设计到底做什么?
常规来看,基本就是MVC、MVP、MVVM以及组件化的东西,这些东西说是架构,但本质上就是模块化的变种,这类东西主要是做业务架构,将一个很大的业务划分为很多小业务,每个小业务就是一个模块。
另一部分架构内容则是技术架构,一般是分层的,最底层是基础框架,包括网络、存储、日志、图片加载等第三方库;中间层则是上层业务经过抽象后所形成的公共业务层,也可以叫做中台,这一块往往包含账号、支付、客服、地图等相对独立的业务;最上层就是核心业务了。从变动性来说,基础框架变动最低,公共业务层次之,上层业务变动最高。
总结来看:移动端架构 = 业务架构(模块化) + 技术架构(分层)

二、为什么要做架构设计?
主要总结为如下几点:
“为了让项目看起来更有技术含量”
“大家都做架构设计,我也得做”
“提高程序性能和可扩展性,降低后续的维护成本”
其实这些目标都比较抽象,不好衡量,做完架构设计后未必能达到预期。
举个例子,MVP特别流行,MVP的好处就是降低耦合,降低后续维护成本,但事实上,用了MVP后,代码极度膨胀,新增了很多类,代码可读性也差,很多新人上手困难,在一大堆presenter中迷失了,大家想想,这样做维护成本是否真的降低了?

三、架构设计的目标
为了寻找架构设计的目标,我们要寻找当前项目中的复杂度来源,也就是说看看当前项目中哪个方面最痛最急需改进,举个例子吧,像滴滴出行这种APP,复杂度来自于大量相似的业务线,而且这些业务线又是在不同的团队开发,那团队协作问题就极为迫切,那我们的架构就要围绕这个来。
换言之,架构设计的目标是解决当前项目的痛点,如果当前项目没有痛点,那就先别进行架构设计了。

四、如何做架构设计
架构设计要以实用为目的,不要光想着造一个世上最牛逼的架构,这样往往是不靠谱的,我们不是救世主。总结下,架构设计有三个基本原则:
1、合适优于先进
适合自己当前业务的就好,不要总想搞世界领先的架构,比如一个用户量100万的系统,光想着对标微信的架构,那微信日活上亿,适合微信的架构未必适合自己。
2、简单优于复杂
如同写代码一样,代码量越少越简单越好,架构设计也是一样,越简单的架构越牛逼。
3、演进优于一步到位
可扩展性我们当然要考虑,但是人不是神,无论你怎么去预测未来的系统演进,总是很大可能会失算。所以架构设计优先解决当下的问题,至于后来的问题,到时候再对架构方案进行改进。
架构设计还要考虑成本,你设计了一个很好的架构,但是需要投入20个人,还要项目停止2个月专门做架构开发,那这种成本就太高,很难推进。拿后端来举例,你设计了一个巨牛逼有效的架构,但需要1000台服务器,然后公司买不起这么多服务器,那也是白搭。
这三个原则也是有优先级的,具体是:
合适优于先进 > 演化优于一步到位 > 简单优于复杂
合适也就是适应当前需要是首位的,连当前需求都满足不了谈不到其他。架构整体发展是要不断演进的,在这个大前提下,尽量追求简单,但也有该复杂的时候,就要复杂,比如生物从单细胞一直演化到如今,复杂是避免不了的。

现在大家都对架构设计的目的以及是否需要有了进一步的认识,下面我们讲讲移动端的架构设计的实现方案有哪些。
上面讲了架构设计分为技术架构和业务架构,技术架构是基础,业务架构是基于技术架构之上的。
对技术架构进行分层:
最底层是基础框架,包括网络请求、数据存储、布局约束、bug检测、图片加载等第三方库;中间层则是针对当前项目的业务编写的工具类库,也可以叫做中台,这一块往往包含账号、支付、客服、地图等相对独立的业务,以及一些工具类:比如字符串、数组、字典的数据转换、系统UI层的一些类的扩展、加解密等等。

业务层:
就是MVC、MVP、MVVM以及组件化的东西,这些东西说是架构,但本质上就是模块化的变种,这类东西主要是做业务架构,将一个很大的业务划分为很多小业务,每个小业务就是一个模块。
最上层就是核心业务了。从变动性来说,基础框架变动最低,工具类库层次之,业务层变动最高。

关于业务层的架构设计可以采用MVC、MVP、MVVM或者是组件化,下面具体讲下几者的区别及用途:
https://www.jianshu.com/p/640352715b01

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容