iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
0
Modern Web

後端的鉗形攻勢系列 第 13

[Day. 12] Framework和MVC

  • 分享至 

  • xImage
  •  

美好的時間總是過得特別快ㄚ,又快要禮拜一了。
抓緊這周末最後的空閒,利用短短的5 min,跟著筆者一起學習吧。

FrameWork

首先,要提到的是Framework(網頁)框架。
這裡框架的解釋,並不局限於網頁。
框架在很多地方都能被使用。
運作原理即是:Framework 已經幫你定義好了大部分的套件,
詳細應該要怎麼做、怎麼去運用已經寫好的套件、該怎麼做動
則是依照自己的需求、目的去做修改與實現。

簡單來說就是利用別人寫好的工具來幫助我們開發

MVC


圖源:網路
MVC是一種軟體架構開發模式,針對目前以資料庫為基礎的網頁,將其區分成三個主要的功能:

  1. 資料庫功能 (Database functions)
  2. 應用程式邏輯 (Application Logic) (例如,密碼的長度必須是 6個字以上)
  3. 外觀 (Presentation) (HTML)

而這三個主要的功能,則剛好對應著:

  1. 模型(Model)】:負責資料庫
  2. 控制器(Controller)】:負責應用程式邏輯
  3. 外觀(View)】:負責HTML 頁面

也就是我們所謂的MVC,Model-View-Controller,把網頁撰寫時主要的功能做了分別並歸類。

接著,我們個別來細談。

VIEW

VIEW,也就是整個結構用來呈現外觀頁面的地方,也就是我們常常說的介面設計處。
然而外觀(Views)無法直接呼叫,他們一定要通過控制器 Controller來呼叫。
在撰寫VIEW時,盡量保持只有網頁外觀程式碼和一些簡單的Loop、if-else。

Controller

Controller提供所有 view 需要的資料,如果有需要拿到資料庫的資料,那就呼叫資料庫 Models 來存取資料。
其實就是世人說的API
可以把它想像成一個服務生,在**餐桌(View)廚房(Model)**之間,接收傳遞資訊。
而系統一開始也是讀取Controller來呈現view
定義 HTTP 請求過來時應該被如何處理。

Model

Models 是被設計來存取資料庫
任何有關資料庫的操作,例如新增、查詢、刪除、更新都是在Model撰寫。

"MVC的目的是實現一種動態的程式設計模式,使後續的程式修改、擴充更加簡化,降低系統複雜度,使系統更好維護與擴充。"

MVC優點:

擴充性高
方便管理有利於團隊分工
使程式結構更直覺

MVC缺點

需要嚴謹的系統規劃,開發時間可能會拉長
系統結構複雜,不適合小型專案
系統肥大,效能降低


市面上有很多符合MVC架構設計的網頁框架,例如 Laravel、CodeIgniter...
希望大家能透過今天的文章對MVC有初步的了解~


上一篇
[Day. 11] 網頁表單實作--POST
下一篇
[Day. 13] Codeigniter
系列文
後端的鉗形攻勢31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言