B端技術常識:MVC模式

9 評論 12492 瀏覽 87 收藏 7 分鐘

文章介紹了程序設計中最重要的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協議。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 業務層和交互層做到低耦合后續調整起來才方便

    來自河南 回復
  2. 業務層和交互層做到低耦合后續調整起來才方便

    來自河南 回復
  3. 作為技術人員,轉崗B端產品是不是比較有優勢呢

    來自福建 回復
  4. 前端部分統稱為客戶端,業務邏輯層和數據層統稱為服務端。

    來自廣東 回復
  5. 對架構理解得很透徹

    來自北京 回復
  6. 可以來個案例說明嗎

    來自重慶 回復
  7. 說了很多,唯獨少了總結,讓人知其所以,不知其然

    來自廣東 回復
  8. MVC可不止于B端

    來自廣東 回復
    1. 任何一套軟件系統運作的本質都是相同的

      來自北京 回復