B端技術常識:MVC模式
文章介紹了程序設計中最重要的MVC三層分層模型,與大家分享。
編程語言種類繁多,無論采用哪種語言進行程序設計,都要遵循經典的軟件工程設計模式——MVC模式。
MVC是Modeling、View、Controller的縮寫,代表軟件設計的分層理念:Modeling指數據模型,View指前端交互視圖,Controller指業務邏輯,MVC模式下的軟件分層結構如下圖所示。
任何一套軟件系統運作的本質都是相同的:用戶在前端交互層操作后,系統通過業務邏輯層處理數據層的數據。不論是BS架構的系統(例如通過瀏覽器訪問的管理后臺),還是CS架構的系統(例如App應用),都會遵循MVC模式搭建程序結構。
將一套軟件系統分為數據、業務邏輯處理、前端交互三層來設計、開發,可以非常有效地保證程序結構合理、邏輯清晰。
MVC模式下的軟件分層結構
我們來具體介紹一下MVC每一層的特點。
一、前端交互層
前端交互層負責繪制程序界面,完成前端程序和用戶的交互互動,并實現一些簡單的業務邏輯,例如數據校驗。常見的負責繪制界面的編程語言有JavaScript、HTML5(即H5,嚴格來講不能算編程語言,只是一種記號語言)、PHP等。
前端方向是升級迭代非??斓募夹g方向,例如針對移動端,有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協議。
業務層和交互層做到低耦合后續調整起來才方便
業務層和交互層做到低耦合后續調整起來才方便
作為技術人員,轉崗B端產品是不是比較有優勢呢
前端部分統稱為客戶端,業務邏輯層和數據層統稱為服務端。
對架構理解得很透徹
可以來個案例說明嗎
說了很多,唯獨少了總結,讓人知其所以,不知其然
MVC可不止于B端
任何一套軟件系統運作的本質都是相同的