Weitere ähnliche Inhalte
Ähnlich wie 如何打造 WebMVC Framework - 基礎概念篇 (20)
如何打造 WebMVC Framework - 基礎概念篇
- 7. 持續維護 官方資訊 最新消息 / 開發進度。 程式下載 / 問題回報。 現成的服務 GitHub Google Project Hosting Source Forge 。
- 15. 瞭解如何與 Web Server 溝通 語言是否提供與 Web Server 溝通的方式?(例如 PHP 提供 $_GET 、 $_POST 、 $_SERVER 等預先處理好的變數;而 header / echo / print 可以對 Web Server 輸出資料。) 沒有的話,就要非常熟悉 HTTP 協定,並自行剖析或組合 HTTP 內容。 瞭解 Web Server 如何執行開發出來的程式? module / CGI / FastCGI / SSL … 每種方式都有可能有難題等著解決。
- 16. 在 Web 開發上所累積的經驗 HTML / CSS / JavaScript … AJAX / JSON / XML … Database / Web Service … Optimization / Performance … 其他通用而可以放到 Framework 裡的經驗。
- 18. Web MVC 示意圖: Model Controller Browser View 參考自 MVC 演化史 (http://huoding.com/2011/05/02/64)
- 22. Router 分析網址,並轉換成對應的 controller /action 及網址參數等。 利用 Chain of Responsibility 模式來設計路由串。 提供反組方法,讓 View 有機會可以用 controller / action 組出對應的網址。
- 23. Request 封裝瀏覽器的要求,例如 header 、 query string 、 form 及 cookies 等內容,將其轉換成方便利用的參數。 封裝伺服器端環境變數、解析後的網址所對應的 controller 及 action 等資訊。
- 25. Action Controller 將系統中有關連的動作集合在同一個 Action Controller 類別裡,每個動作都是一個公開的類別方法。 能決定程式流程,例如重導向。 接收 Model 的狀態,並轉交給 View 顯示。
- 29. View Data from Model Output Template Engine Layout Template
- 31. Template / Layout 通常一個 action 方法對應一個 template 檔案,但也可以再細拆為一個頁面區塊一個 template 檔案。 Layout 為兩階式 template 設計,一般做法是:先產生 layout 內容,再產生 action template 內容。
- 34. 可擴充性 Action Helper – 擴充 Action Controller 。 View Helper – 擴充 View 。 Plugin / Behavior – 擴充 Model 。 Module – 擴充整個系統。
- 35. 便利性 Framework 除了現成的目錄結構外,通常還會提供一些方便的操作工具。 命令列操作指令。 程式碼產生器。 但並非一定要有這些工具才算 Framework 。
- 38. 其他 提供 Form (Filter / Validator) 、 Debug 、 Log 、 Cache 等功能。 整個 Framework 要有 Unit Test 的能力。 要能夠整合第三方套件。