iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0

Who the hell are you

image alt

前言

當在做專案時,如果程式碼(例如 HTML、CSS、JS)全部都混在一起,雖然在瀏覽器上顯示正常,但對於開發者來說,這樣的程式碼會相當難以維護,後續若有新成員接手更是難以處理。各位可以想像交接任務時,對一無所知的自己來說會覺得一團亂,彷彿接到了一個爛攤子,因為前面的龐大資料無人整理,大概就是這麼回事。

因此,一群致力於改善這種狀況的人發明了 MVC 模式(Model–View–Controller)。可以將它視為程式開發的 SOP,它是一種用於開發使用者介面的軟體設計模式,也可以說是一個概念。這個概念主要強調如何將應用程式的不同部分(介面、邏輯、資料)分離,從而達到更好的結構化和可維護性。雖然它具體應用於程式開發,但其本質是一個架構和設計思路,指導我們如何組織代碼和應用。

fun fact

image alt

暴雷:三蟲同框

麻瓜解釋

Yes

今天小銘與小華經營一間餐廳(程式碼)。起初整個餐廳一團亂,因為職位分配不清,廚師去出餐、服務生切菜、清潔員負責炒菜,客人甚至要對著廚房喊:「那個醬汁呢?」

他們反省了一番,決定採用一個經營模式叫 MVC。它是三個概念的結合,分別是:

  • M(模型 Model):代表廚房(伺服器和程式邏輯),負責存放食材(資料庫,帳號密碼儲存等等),而廚師可以專注於處理食材與烹飪(邏輯處理)。
  • V(視圖 View):提供給消費者瀏覽的電子菜單(瀏覽器頁面),僅此而已。
  • C(控制器 Controller):當客人點餐時,從輸入選項 → 發送訂單 → 廚房接收 → 廚房做菜 → 出餐 → 送到消費者面前,這就是 C 的過程。
    依照這樣的模式,區塊與工作分明,日後有新員工加入也能迅速銜接工作。於是餐廳的生意開始蒸蒸日上,直到疫情來臨 :)

歷史

MVC(Model-View-Controller)是一種經典的軟體設計模式,誕生於 20 世紀 70 年代。這種設計模式的發展背景與軟體工程領域的發展息息相關,尤其是在圖形使用者介面(GUI)與面向物件編程(OOP)興起的時期。

起源:Smalltalk 與 Xerox PARC(1970s)
MVC 最早的概念由程式設計師 Trygve Reenskaug 於 1979 年提出,當時他在 Xerox PARC(Palo Alto 研究中心)工作,並為 Smalltalk-76 語言開發了這種架構。Smalltalk 是一種早期的面向物件編程語言,MVC 旨在解決開發 GUI 應用時的複雜性問題,並將程式中的資料、展示和邏輯控制分離。Reenskaug 提出的 MVC 使得應用的各個部分能夠獨立運作、維護,大大提升了開發的靈活性與可擴展性。

後記

我理解 MVC 就是一種程式界的 SOP(標準作業流程,英語:Standard Operating Procedures),具有分工明確、易於維護和高效率等優點。

也許對於還未接觸程式的各位來說會覺得很模糊。我第一次碰到這種狀況是在寫 JS 時,因為沒有概念,會把所有程式碼混在一起,對初學者來說這是正常的。

以我所接觸的經驗來說,程式可以分為邏輯和介面。邏輯是專門處理運算的過程,而介面則是使用者輸入值的功能。雖然都是程式碼寫出來,但負責的事情不同。各位可以慢慢細品我說的話,等寫到的時候就會明白我在說什麼了。

參考

Model–view–controller - Wikipedia
什麼是MVC網頁設計? 做網站一定需要MVC嗎?│愛貝斯網頁設計
MVC架構是什麼?Model View Controller框架基本觀念一篇理解! - 凱士網頁設計


上一篇
DAY28 CSS framework
下一篇
DAY30 邁向前端之路
系列文
麻瓜的程式翻譯書《Who the hell are you XXX》30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言