美文网首页
基于微服务对iOS架构的一些想法(以b站App做简要分析)

基于微服务对iOS架构的一些想法(以b站App做简要分析)

作者: 傍观者 | 来源:发表于2018-03-20 15:27 被阅读0次

起因

后段微服务重构,前端配合2.0。
本人对微服务略知一二,所以不多阐述。对应到前端所要做的,即每个小的模块对应一个服务项目,并且模块的扩展性随服务的扩展性增加而增加,单个小模块的问题不导致整个系统的崩溃。减少测试成本,降低维护难度。

考虑

因为是模块化,每个模块的灵活度有服务端来提供。在mvc模式下,controller的代码量会随之增加。为了减轻controller的代码量,进行vc切割。可以采用VIPER模式的思想,将controller 拆分成router和presenter。即presenter负责处理model,并和view进行交互。router负责将各模块衔接在一起,同时负责页面的跳转部分。Entity和Interactor负责model部分。原来的model部分也是将model部分拆分成,网络数据调用、解析和数据存储这两部分,在此就不需要更加细化的拆分。


VIPER

具体案例分析:

这里采用b站iOSApp作为案例。


事例1.PNG

b站的app细看下是有好多模块组成的,各种数据也是从后台得到的。同时后台也采用了微服务的设计。

对于上面的页面,用VIPER划分6个view、6个presenter 、1个router、1个entity和6个interactor。即nagivation,关注娱乐的自导航栏,轮播collectionview,明星直播view ,推荐主播collectionview 和下面的tabbar。将这些页面拼凑到router中统计一的调度,各个业务逻辑分写到presenter中,这样整个controller的代码将缩减很多,且业务逻辑分离。这在测试和维护的时候将省去很多问题。

对于多人合作上的问题。就上述划分,有许多东西也很多复用价值。在多人合作上,如果有复用的,单个人只要重写presenter和router,至于interactor和entity可以稍作修改或增加,这样可以保证整体代码样式的规范性,在测试和维护上减少成本。但也有对整个架构不熟悉的开发者,这样就会写出冗余的代码。

弊端分析:由于差分的细化。如果结构层次过深,横向过长。这样对于新的开发者不友好。而且有第三方团队的参与的话,很有可能有冗余代码的产生。

总结

运用VIPER架设模块化应用并非最好的模式,正如我同事所说,一切还要靠开发者。就像建造房子一样,设计很好,但施工方偷工减料。这样问题也不少。但是运用VIPER架构可以做到那坏换哪的方式,细化的拆分带来的测试和维护成本减少也将有利于一个大工程的构建。

相关文章

  • 基于微服务对iOS架构的一些想法(以b站App做简要分析)

    起因 后段微服务重构,前端配合2.0。本人对微服务略知一二,所以不多阐述。对应到前端所要做的,即每个小的模块对应一...

  • 微信小程序云开发如何上手

    简要介绍 微信小程序云开发,是基于 Serverless 的一站式后端云服务,涵盖函数、数据库、存储、CDN等服务...

  • 架构之路

    1. 架构之路 (一) —— iOS原生系统架构(一)2. 架构之路 (二) —— APP架构分析(一)3. 架构...

  • iOS App从点击到启动

    iOS 系统架构 Mac系统是基于Unix内核的图形化操作系统,Mac OS 和 iOS 系统架构的对比分析发现,...

  • iOS结构 乱想

    其实我是写一点自己对iOS架构的想法,但是鄙人出身卑微,工作经验较少,所以不敢妄议iOS架构,以结构为标题。 开始...

  • Node.js http模块-web服务初始化、端口

    一.http模块 1. C/S架构 B/S架构 C/S client/server:基于独立的客户端,请求服务器B...

  • HTML基础

    B/S架构 B/S架构是指将浏览器作为客户端、WEB服务器作为服务端的一种计算机架构,基于网页与用户实现交互,网页...

  • 基于彻底解耦合的实验性iOS架构

    基于彻底解耦合的实验性iOS架构 基于彻底解耦合的实验性iOS架构

  • 微服务架构与 SOA 区别

    对微服务架构与 SOA 架构区别不知道怎么回答,在这里写下“微服务架构与 SOA 区别 微服务架构基于 SOA 演...

  • B站APP为什么下架?全站进行整改

    7月26日消息,近日众多网友发现在很多应用商店已经不能下载B站APP了,一些网友直呼“B站黄了”。那么B站APP为...

网友评论

      本文标题:基于微服务对iOS架构的一些想法(以b站App做简要分析)

      本文链接:https://www.haomeiwen.com/subject/gnevqftx.html