iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 3
0
自我挑戰組

Ruby on Rails 新手的30個問題!系列 第 3

Day_03 MVC架構?(1)

昨天向各位提到了user story,也就是將所需的功能,寫成特定的格式,來讓團隊可以遵循敏捷開發的方式,更有效率的完成專案。
而今天我們來講講 Rails 中的MVC架構,依照往常的慣例,開始前來張香吉士吧!
https://ithelp.ithome.com.tw/upload/images/20200910/201291913E4k1NGJp7.jpg

相信各位常常聽到MVC架構,在 Rails 裡利用Model、View、Controller來處理從使用者那邊打過來的要求。簡易圖片為下:

當使用者點下了網頁的一個連結後:

  1. 相當於像sever發出了一個請求(request)
  2. routes檔案裡所設定的路徑,去找到相對應的Controller
  3. Controller根據身上的action把你指到相對應的頁面(View);或是直接請Model更新資料
  4. 頁面上面所要呈現的資料,就交由Model幫你從資料庫裡撈出來,再傳回給View
  5. 交由Controller,最後再一次回應(response)給使用者。

上面就是Rails裡的MVC架構的實作方法,若用點菜來做個簡單的比喻:

當我點了一盤菜:

  1. 相當於我發了一個請求,店員會將請求送往廚房。
  2. 廚房裡的大廚根據我點的菜,像學徒們下達命令
  3. 請學徒甲負責去煮出我要的菜。
  4. 學徒乙幫忙去拿取所需要的材料,交給學徒甲
  5. 學徒甲煮完後交由大廚,大廚請店員上菜

若我們把上面兩個說明結合起來:

  1. 店員 = Server或routes
    (決定菜單是送往廚房,而不是外面的飲料吧台區)
  2. 大廚 = Controlle
    (將請求分配下去)
  3. 學徒甲 = View
    (負責做出菜餚)
  4. 學徒乙 = Model
    (負責去拿取材料(資料))

這樣的比喻可能沒有達到盡善盡美,若有更好的建議,請各位不吝指教~
/images/emoticon/emoticon41.gif

不過話又說回來,到底為什麼要搞得那麼麻煩呢?
在學 Rails 之前,我很認真的以為一個頁面就只有一個檔案呢!XD
明天就來解答使用MVC的好處吧!


上一篇
Day_02 user story?
下一篇
Day_04 MVC架構?(2)
系列文
Ruby on Rails 新手的30個問題!30

尚未有邦友留言

立即登入留言