2013年5月23日 星期四

利用javascript實做 MVC 網頁(五)

離發想到現在竟然不知不覺過了一年了! 這期間一直在想如何精簡實作的方法,好讓這種開發模式可以容易實做。經過前面幾篇的說明,在此先做個小結,草擬設計原則,以利設計參考:
(一)對資料庫的存取、控制寫在 Module內,其他程式(Control, View)不能包含任何存取資料庫的功能--以「物件」方式實作對資料庫的存取,提供函數(method)呼叫供Control使用
(二) Module  只實作業資料庫的存取功能,不作其他額外功能。
(三) Control  :
  1. 負責接收 View Submit過來的資料及回傳處理結果。
  2. 負責所有的商業邏輯的計算(處理)。
  3. 如果要查詢資料庫,只將查詢參數傳遞結 Module 的函數(method),並接收 module 回傳的查詢結果。(Control 不自己做 SQL 的查詢語法 )
(四) View 負責所有前端的Presentation的功能:
  1. View 傳送表單資料或使用者操作給 Control,Control用 JSON 或 Response 回傳處理結果。
  2. View 收到結果後,由View 決定回傳值的操作,Control 只負責傳回結果,不負責控制 View 的表現方式。
(五) 由於View 內容包含:HTML(網頁), CSS(外觀佈局), JavaScript(行為控制),為了實現網頁設計(HTML + CSS) 與行為控制設計(JavaScript) 分開,建議:
  1. 有關網頁的 Javascript 建議以 <script type="text/javascript" src="網頁名.js"></script> 方式自外部引入。
  2. 如果共用的 javascript  檔案,置放於根目錄下的 JS 子目錄,如果是特定網頁專屬的Javascript 檔案,則與網頁置於同目錄下,並採用相同主檔名,以利管理
  3. 有關各DOM物件的事件處理,請利用 jQuery 的 $("#id").EVENT=function(){ }; 方式註冊,不要直接寫在 Html 的 tag 內。
利用這種開發模式,個人見解應有下列優點:
  1. 網頁、Javascript、Control、Module 可以分開設計、測試,也就是可以平行開發。
  2. 各功能間是透過功能呼叫 (參數傳遞)方式合作,對於通用的功能(例如:可能許多網頁都會叫用相同的資料)只需寫一個即可共用! 減化開發程序及版本維護。
  3. 由於各功能獨立模組化, 可供其他專案使用,達到程式再用目標。
  4. 為客戶展示用的雛型網頁可以幾乎不修改就直接移作正式開發用,讓客戶獲得一致的感受
依照上述原則,應該可以達到 DB管理、程式設計與網頁設計分離的要求。
由於個人思考範有限,若先進有發現不足之處,尚請隨時指正!

沒有留言:

張貼留言