移动端工程架构与后端工程架构的思想摩擦之旅(1)

 此文已由作者黎星授权网易云社区发布。

欢迎访问

 

点击查看原图

该架构模型由5个部分组成,分别是Toolkit/ToolkitSDK module、基础组件库/基础组件库module、基础服务接口/业务服务接口module、服务调度中心module以及业务module。

  • Toolkit/Toolkit SDK

Toolkit是工具类及与工具类相关的SDK的集合。工具类属于工程架构里最基础的模块,提供了通用的方法与工具类服务(工具类服务是指可以被抽象成一个独立的与业务无关的基础服务,如缓存、数据库操作等)。工具类通常作为最底层的module,被其他所有模块引用。

  • 基础组件库/基础组件SDK

基础组件库是基础组件及相关SDK的集合。基础组件库提供与业务相关的基础组件,是构建一个移动端应用所需要的通用组件的集合。它与工具类的区别在于基础组件库可能会包含少量业务逻辑代码,是无法拆分给其他应用使用的;另一方面,基础组件库是基础服务接口的实现,是不对业务层暴露的,避免了业务层与基础SDK打交道,有利于整体替换底层基础框架的实现(例如Volley替换为OkHttp、Fresco替换为Glide)。

  • 基础服务接口/业务服务接口

基础服务接口声明了一组通用的基础服务,业务层通过基础服务接口获取基础服务,如网络请求、图片加载等。业务服务接口声明了一组该模块提供给其他模块的服务,业务之间的通信也是通过服务接口来完成的。例如首页模块需要获取购物车的商品数量,首先通过服务调度中心获取购物车的服务接口,再通过服务接口调用购物车获取商品数量的接口方法即可。

  • 服务调度中心

服务调度中心,是一个接口收集与管理的容器。服务调度中心将所有基础服务接口与业务接口收集起来,通过一定的方式与它们的实现类进行绑定。所有的业务都需要通过服务调度中心才能够获取到服务。服务的注册与发现和Spring容器的IoC思想是类似的。

  • 业务层

业务层是每个业务的具体实现的集合。业务层的业务之间是没有直接引用关系的,业务层提供了业务服务接口中暴露的服务的具体实现。业务之间的通信需要通过服务调度中心获取其他业务的服务接口。

 

移动端架构小结

通过接口服务架构模型,模块之间是高度解耦的。业务负责人唯一需要维护的公共部分便是这个模块在业务服务接口中暴露的服务。对于业务服务的接口功能增改变得非常方便,业务实现的逻辑更改、代码优化等,只要不改变服务接口的签名,就不需要其他业务方改动任何代码即可完成,由此团队的开发效率是非常高的。

 

后端架构思考

 

对于后端工程来说,架构的设计与实现必定是与工程的业务难度及复杂程度相关的,如果只是很简单的业务模型,就没有必要弄得太过复杂,避免得不偿失。本人只接触了几个月后端知识,对于后端的架构体系与演进过程处于不断地学习和探索中。投放系统是我接触到的第一个完整的后端工程,其中Web工程采用传统的MVC架构^2,对我具有很大地学习和借鉴意义,项目架构如下图所示。

 

点击查看原图

该架构纵向划分成展示层、控制层、服务层、对象关系映射层和数据服务层5个部分,层级间通过AOP的方式插入了业务监控、日志、权限控制、统计分析等功能。

  • 展示层(View)

展示层是系统与用户打交道的地方,提供与用户交互的界面。对于用户而言,只有展示层是可见的、可操作的。展示层对于某些工程来说不是必须的,例如提供纯后台服务的工程。

  • 控制层(Controller)

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信