B端技术常识:MVC模式

9 评论 12472 浏览 87 收藏 7 分钟

文章介绍了程序设计中最重要的MVC三层分层模型,与大家分享。

编程语言种类繁多,无论采用哪种语言进行程序设计,都要遵循经典的软件工程设计模式——MVC模式。

MVC是Modeling、View、Controller的缩写,代表软件设计的分层理念:Modeling指数据模型,View指前端交互视图,Controller指业务逻辑,MVC模式下的软件分层结构如下图所示。

任何一套软件系统运作的本质都是相同的:用户在前端交互层操作后,系统通过业务逻辑层处理数据层的数据。不论是BS架构的系统(例如通过浏览器访问的管理后台),还是CS架构的系统(例如App应用),都会遵循MVC模式搭建程序结构。

将一套软件系统分为数据、业务逻辑处理、前端交互三层来设计、开发,可以非常有效地保证程序结构合理、逻辑清晰。

MVC模式下的软件分层结构

我们来具体介绍一下MVC每一层的特点。

一、前端交互层

前端交互层负责绘制程序界面,完成前端程序和用户的交互互动,并实现一些简单的业务逻辑,例如数据校验。常见的负责绘制界面的编程语言有JavaScript、HTML5(即H5,严格来讲不能算编程语言,只是一种记号语言)、PHP等。

前端方向是升级迭代非常快的技术方向,例如针对移动端,有JavaScript、Flex等前端语言;针对PC端,前端语言也从曾经的HTML + JS + CSS,到流行一时的富客户端RIC(Rich Internet Client),再到ExtJS、Node.js等。前端工程师需要不断地刷新自己的技能树,来适应快速变化的前端需求。

二、业务逻辑层

业务逻辑层负责处理业务逻辑,例如在分销运营管理后台的门店列表页,点击“关联账号”按钮,前端交互层把指令发送给业务逻辑层,业务逻辑层要判断门店状态是否能够关联账号、是否有空闲账号可以进行关联等。

开发人员应该尽量将复杂的校验、判断、业务规则都封装在业务逻辑层,这样可以让前端交互层的负担更轻,更容易扩展,因此业务逻辑层是MVC结构中最复杂的部分。

例如,假设分销运营管理后台除了PC版本,还打算做一套H5移动版本,以方便审核人员操作。如果业务逻辑层代码和接口设计良好,则只需要前端工程师实现H5代码即可;但如果之前的前端交互层和业务逻辑层耦合紧密,那么实现H5版本就需要前后端工程师一起调整代码,非常麻烦。

业务逻辑层常用的编程语言有Java、C++、C#、PHP等。

三、数据层

数据层代表底层的数据存储。数据包括结构化数据和非结构化数据,既可以存储在数据库中,也可以存储在文本文件中。数据存储操作一般由程序来完成,例如通过程序对关系型数据库的数据进行增删改查处理。

在早期的软件开发工作中,工程师既要开发前端,也要开发后端,还要设计并管理数据库,可以说是真正的全栈工程师。除此以外,工程师还要承担产品经理的工作,与业务方聊需求、掌控项目进度……

现如今,互联网公司对工作内容的划分非常细致,会将前后端的开发分离。下图所示为前后端分离的MVC模式,不论是CS架构还是BS架构,前端部分统称为客户端,业务逻辑层和数据层统称为服务端。

前端工程师负责客户端开发,后端工程师负责服务端开发,客户端和服务端之间完全通过接口交互。这样便实现了专业化分工,两端的工程师都聚焦于自己的技术领域,让工作更精细专业。

MVC模式下的前后端分离结构

现在,你是否更加理解程序设计的分层模型,以及前后端分离的原因了呢?希望本文能够帮到你。

插播一条广告

大家好,我是《决胜B端》作者杨堃,曾在VIPKID任产品总监一职。在工作中,遇见有很多优秀的B端产品经理,但缺少体系化、针对B端产品的实操训练,在成长中走了许多弯路。

我努力将自己多年做B端产品的经验提炼总结出来,和起点学院联合打造了一门B端产品体系课——《To B产品实战训练营》希望能给需要的同学一些实质性的帮助。

帮助大家构建B端产品知识体系脉络,掌握B端产品建设,从业务诊断、需求分析,到抽象建模、设计落地的全过程的方法思路,最终直接应用于工作实践。

扫码即可报名,还可为大家争取到的专属优惠~

立即抢座,报名成功后即可领取详细课程资料!

#专栏作家#

杨堃,公众号:PM杨堃(ID:pmYangKun)。人人都是产品经理专栏作家,《决胜B端》作者,11年互联网研发、产品设计经验,曾就职于传统外资保险公司、百度,现就职于VIPKID。

本文原创发布于人人都是产品经理。未经作者许可,禁止转载。

题图来自Unsplash,基于CC0协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
海报
评论
评论请登录
  1. 业务层和交互层做到低耦合后续调整起来才方便

    来自河南 回复
  2. 业务层和交互层做到低耦合后续调整起来才方便

    来自河南 回复
  3. 作为技术人员,转岗B端产品是不是比较有优势呢

    来自福建 回复
  4. 前端部分统称为客户端,业务逻辑层和数据层统称为服务端。

    来自广东 回复
  5. 对架构理解得很透彻

    来自北京 回复
  6. 可以来个案例说明吗

    来自重庆 回复
  7. 说了很多,唯独少了总结,让人知其所以,不知其然

    来自广东 回复
  8. MVC可不止于B端

    来自广东 回复
    1. 任何一套软件系统运作的本质都是相同的

      来自北京 回复