Skip to main content

關於 一分鐘 TurboGears

· 3 min read

最近生活中都是在寫 Code, 鑽研 boa web server 處理的流程, 打開 Dreamweaver 也越來越少使用 Design View, 感覺自己越來越有軟體工程師的樣子.

這陣子寫的 "一分鐘 TurboGears" 系列,前數篇原本是在春節期間用英文寫成的,後來才決定先用最熟悉的中文來寫.

現在的網頁框架幾乎全部都套用 MVC 模式,將資料模型 (Model), 展示頁面 (View,Template) 分離,以控制邏輯 (Control logic) 來溝通兩者以呈現出設計者的思想。這樣的方式讓架構跟維護都變得更清楚更容易.

然而,在寫動態網頁原型的階段時,一定要一次就套用上 MVC 嗎? 我們在網頁程式早期做的頁面,有幾頁能不做大修改就能留用到最後呢? 我們什麼時候能一次就將資料庫欄位,互相間的關聯性一次設計好呢? 起碼對我來講,這兩個假設都是不可能的.

設計 MVC 程式一般理想的流程是:

設計資料庫欄位 -> 產生資料庫 -> 寫樣板 -> 寫控制邏輯以填入資料 -> 展示

但是在實做上

設計資料庫欄位 -> 產生資料庫 -> 寫樣板 -> 寫控制邏輯 -> 發現問題 -> 修改資料庫欄位 -> 重新產生資料庫

我在 Modeling 時發現,在早期設計階段修改欄位的需求很頻繁,(常有些是 paper design 時沒想到的) 碰到這樣的問題時,除了 update 資料庫,若與資料庫不相容時還得將資料庫刪除,再重新產生.

設計 MVC 程式在第一關就遇到 Modeling 問題,接下來當然很難繼續學下去.

有了方便的網頁程式框架,與動態網頁幾乎可忽略的編譯與重新載入時間的特性,我們當然可以用靈活 (agile) 編程的方式來寫我們的網頁程式.

我想最快速動態資料庫網頁 prototyping 的方法,也許就是像目前的範例這樣子先將 model, view 放一邊,純寫程式碼先掌握正確的控制邏輯吧.