编者按:本文来自微信大众号“PM杨堃”(ID:pmYangKun),作者杨堃,36氪经授权发布。
本文节选自我的作品《决胜B端》,介绍程序规划中最重要的MVC三层分层模型。接下来的几篇推送,我会摘抄书中关于技术知识的讨论,共享给咱们。
编程言语品种繁复,不管选用哪种言语进行程序规划,都要遵从经典的软件工程规划形式——MVC形式。
MVC是Modeling、View、Controller的缩写,代表软件规划的分层理念。Modeling指数据模型,View指前端交互视图,Controller指事务逻辑,MVC形式下的软件分层结构如下图所示。任何一套软件体系运作的实质都是相同的:用户在前端交互层操作后,体系经过事务逻辑层处理数据层的数据。不论是BS架构的体系(例如经过浏览器拜访的办理后台),仍是CS架构的体系(例如App使用),都会遵从MVC形式建立程序结构。将一套软件体系分为数据、事务逻辑处理、前端交互三层来规划、开发,可以十分有效地确保程序结构合理、逻辑明晰。
MVC形式下的软件分层结构
咱们来详细介绍一下MVC每一层的特色。
前端交互层
前端交互层担任制作程序界面,完结前端程序和用户的交互互动,并完结一些简略的事务逻辑,例如数据校验。常见的担任制作界面的编程言语有Javascript、HTML5(即H5,严厉来讲不能算编程言语,仅仅一种记号言语)、PHP等。
前端方向是晋级迭代十分快的技术方向,例如针对移动端,有Javascript、Flex、Objective-C、Kotlin等前端言语;针对PC端,前端言语也从从前的HTML + JS + CSS,到盛行一时的富客户端RIC(Rich Internet Client),再到ExtJS、Node.js等。前端工程师需求不断地改写自己的技术树,来习惯快速改变的前端需求。
事务逻辑层
事务逻辑层担任处理事务逻辑,例如在分销运营办理后台的门店列表页,点击“相关账号”按钮,前端交互层把指令发送给事务逻辑层,事务逻辑层要判别门店状况是否可以相关账号、是否有闲暇账号可以直接进行相关等。
开发人员应该尽量将杂乱的校验、判别、事务规矩都封装在事务逻辑层,这样做才可以让前端交互层的担负更轻,更简单扩展,因而事务逻辑层是MVC结构中最杂乱的部分。
例如,假定分销运营办理后台除了PC版别,还计划做一套H5移动版别,以便利审阅人员操作。假如事务逻辑层代码和接口规划杰出,则只需求前端工程师完结H5代码即可;但假如之前的前端交互层和事务逻辑层耦合严密,那么完结H5版别就需求前后端工程师一同调整代码,十分费事。
事务逻辑层常用的编程言语有Java、C++、C#、PHP等。
数据层
数据层代表底层的数据存储。数据包含结构化数据和非结构化数据,既可以存储在数据库中,也可以存储在文本文件中。数据存储操作一般由程序来完结,例如经过程序对联系型数据库的数据进行增修改查处理。
在前期的软件开发作业中,工程师既要开发前端,也要开发后端,还要规划并办理数据库,可以说是真实的全栈工程师。除此以外,工程师还要承当产品司理的作业,与事务方聊需求、掌控项目进展……
现如今,互联网公司对作业内容的区分十分详尽,会将前后端的开发别离。下图所示为前后端别离的MVC形式,不论是CS架构仍是BS架构,前端部分统称为客户端,事务逻辑层和数据层统称为服务端。前端工程师担任客户端开发,后端工程师担任服务端开发,客户端和服务端之间彻底经过接口交互。这样便完结了专业化分工,两头的工程师都聚集于自己的技术领域,让作业更精密专业。
MVC形式下的前后端别离结构
现在,你是否愈加了解程序规划的分层模型,以及前后端别离的原因了呢?期望本文可以帮到你。
看过来
36氪「E-Club创变者沙龙」第一批CEO招募,依托36氪媒体洞悉力、影响力和工业资源优势,衔接价值创投圈资源与人脉,为创业加快赋能。洞悉中心需求精心打磨五大权益,助创业路上的你一臂之力!