Ruby on Rails - MVC架構

什麼是 MVC 架構?

是軟體工程中的一種軟體架構模式,是希望能把應用程式的內部運作歸納成不同的部門,讓每個部門各自負責不同的關注點,把不同意義的程式碼放在不同的檔案裡,Rails 就是採用 Model(模型)、View(視圖)、Controller(控制器)(簡稱 MVC)的方式設計的。

這麼做的好處?

  1. 分工容易
    整個專案拆解成 MVC 結構之後,雖然檔案變多、變分散了,但也因此更容易進行分工,當團隊人數增加,每個人可以在各自負責的部份進行開發,較不易互相衝突、干擾。
  2. 方便管理
    整個 Rails 專案都是遵循 MVC 的慣例結構,所以即使是不同程度的開發者寫出來的 Rails 專案,Controller、Model、View 大多都會放在相同位置的目錄裡,不會有太大的差別。

用圖來解釋

  1. 首先當使用者進入網站後,會根據想查到的資訊尋找相對的路徑,就像你去戶政事務所,門口有個阿桑會問你你要辦什麼業務。

  2. 網頁知道你要什麼,就會去 controller 查有沒有對應的 action 可以處理事情,沒有就會出現 404 找不到頁面,就像你跟阿桑說要補辦身份證,他會跟你說去幾樓第幾號櫃檯。

  3. 當網頁查到有這個 action 時會用他的方式去跟 model 要資料但資料庫看不懂,所以這時候的 model 就像是翻譯機一樣,用資料庫看得懂的方式跟資料庫要資料,資料庫回資料時 model 就用物件的方式把資料回傳給 action 讓 action 做處理,就像你到櫃檯後跟他說我要補辦身份證,他還是要去資料部申請資料,資料部調出資料後給櫃檯。

  4. 這時候回傳的資料還沒有經過美化、整理,還不適合給使用者看,所以 action 還要跟 view 借一下畫面,讓資料更適合使用者閱讀。 action 把資料跟 view 的畫面組合,最後呈現給使用者看,就像櫃檯得到資料後將資料給加工部處理,處理好後的證件就是你最後看到的。

comments powered by Disqus