1 minute read

介紹 MVC 架構與 Rails


photo by Rafael D. Hernandez on freeCodeCamp

前提:初學者的學習筆記,僅供參考,敬請指教~

Ruby on Rails - 讓開發者專注於開發本身的框架

在說明 MVC 架構之前,先花一點時間介紹 Rails:

Ruby on Rails(官方簡稱為 Rails,亦被簡稱為 RoR),是一個使用 Ruby 語言寫的開源 Web 應用框架,它是嚴格按照 MVC 結構開發,努力使自身保持簡單,使實際應用開發時的代碼更少,使用最少的組態。 Rails 的設計原則包括「不做重複的事」(Don’t Repeat Yourself)和「慣例優於設定」(Convention Over Configuration)。-Ruby on Rails (wiki)

我們再來看官方手冊如何介紹 Rails :

It is designed to make programming web applications easier by making assumptions about what every developer needs to get started. It allows you to write less code while accomplishing more than many other languages and frameworks. Experienced Rails developers also report that it makes web application development more fun.

Rails 的設計目標是讓開發者可以更容易地進行網站開發。而且相較於其他程式語言和框架,Rails 可以用更少的程式碼達成更多的功能,同時讓網站開發變得更有趣。

我們可以看出 Rails 的設計理念,就是建立架構與原則,減少開發中需要耦合而耗費的力氣(例如:檔案該放在哪、如何命名文件等等)。除了「不做重複的事」(DRY)以及「慣例優於設定」(COC),Rails 也依循 MVC 架構開發,做為 Rails 設計理念的實踐。

接著我就來認識什麼是 MVC 吧!

什麼是 MVC?

MVC - Model、View、Controller,是一種設計架構與開發邏輯。

Rails 即是基於 MVC 架構進行開發

以下說明 MVC 各自負責的部分:

  • Model: 負責與資料庫溝通、處理資料邏輯。
  • Views: 負責畫面呈現。
  • Controller:負責處理傳進來的資料流向、流程控制。

我們可以把 Controller 想成一個控制中心,它負責指揮 Model 與 Views,指示 Model 向資料庫取用資料、決定頁面邏輯、指定渲染哪個檔案等等。

簡單來說 MVC 就是 「控制歸控制,資料歸資料,畫面歸畫面」。 基本的邏輯會是 「Controller 請 Model 處理資料,並設計資料流向,再讓 Views 被動接受資料並呈現畫面。」

下面的這張流程圖就非常清楚的展示了 Rails 專案中的 MVC 架構:


photo by 5xruby on 為你自己學 Ruby on Rails

這張流程圖很重要,是我們整個 Rails 專案的設計基礎,可以先記在心裡,之後會一直出現!

*關於 Route 是什麼,將在下一篇文章介紹。

為什麼要使用 MVC?

如上所述,MVC 的目的就是分工,使用 MVC 架構的好處,在於這三者彼此獨立、各司其職,方便團隊進行開發,程式碼易於維護,更重要的是基於 MVC 架構的慣例,我們在接手專案的hj時候,可以對專案架構快速有個基礎的認識。

Rails 與 MVC

由於 Rails 是基於 MVC 開發,再加上 Rails 的核心理念「慣例優於設定」(Convention Over Configuration)。Rails 專案中的資料夾結構、MVC 檔案的命名方式等都有相應的慣例,照著慣例走,我們可以減少花在設定上的力氣,把更多精力放在開發本身。

參考資料: