九月底新书已经完稿了,本月开始回归日常分享,先分享一个简单的知识点开个场。
作为非技术出身的产品经理,很多同学在遇到一个功能出现问题时不知道应该找谁,时常因为找错人而尴尬,根本原因在于这些同学没有理解前后端是如何分工的。这篇文章我们就通过软件技术架构中的三层架构,来理解前后端的开发小哥们各自都是干啥的。
01
什么是三层架构
三层架构是软件技术架构中从技术实现角度对产品做的分层,有点类似于《用户体验要素》一书中对产品从五个层次做的划分,只是划分角度和目的不同。
如下图1所示,在三层架构中,将产品分为了表现层、业务层、数据层三个层次,下面我们就来看看这三个层次具体是什么含义。
图1 三层架构示意图
1、表现层
表现层(UIL:User Interface layer) :通俗讲就是展现给用户的这套界面,即用户在使用产品时能够看到的、触摸到的这部分。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。如下图2所示的爱奇艺推荐页,我们所看到的这些内容全都属于表现层的范围。
图2 爱奇艺推荐页
2、业务层
业务层(BLL:Business Logic Layer) :又称领域层,是进行业务逻辑处理的一层。根据表现层的具体指令、请求,按照已定义好的规则进行逻辑处理,并将处理好的数据返回给表现层。
业务层在三层架构中处于数据层与表现层的中间,在数据交换中起到了承上启下及处理的作用。
对于数据层,它是调用者;
对于表现层,它是被调用者。
数据访问层:主要是对数据库进行直接操作,包括对数据的增删查改等;
数据库:按照数据结构来组织、存储和管理数据的仓库。后端开发小哥们所说的数据字典就属于这一层的内容,而数据表的结构关系就是根据业务层的需求而定。
- 前端:负责与用户交互。主要工作是数据获取、页面布局展示、数据展示、完成各类动画动效、进行文字图片加载与渲染、视频播放和部分前端逻辑处理;
- 后端:负责进行业务逻辑处理和数据处理。主要工作是数据存储、数据处理、逻辑处理、数据输出。而这几个工作,是产品实现过程中任务最重,最复杂的地方,这也就是为什么我们在加新需求时,希望尽可能减少对后端影响的原因。我们一般遇到的流程没走通,数据、逻辑问题,大部分都与后端有关。
- 方式一:由前端实现角色的查看权限逻辑。用户登录后,后端将用户角色返回给前端,前端根据已经写好的逻辑,判断这个用户能否看到这个按钮;
- 方式二:由后端实现角色的查看权限逻辑。用户登录后,后端不需要返回用户角色,而是直接根据已经在业务层写好的角色查看权限逻辑,将这个用户能否看到这个按钮的结果告诉前端,前端根据结果直接做展示即可。