我不會 OO 和 design pattern。

說實在的,我一直覺得我不會物件導向,雖然我學過 Java ,知道什麼是類別、物件,也知道繼承封裝多型是什麼東西,但是我還是不會物件導向。

我可以訂一個類別來做各種不同的事,但通常只是進行封裝,我骨子裡的寫法都還是程序導向的做法,大概是我還不懂 OO 和 Design pattern 的美吧。

再說現在很火的 Ruby on Rail 或是 MVC 架構吧,我怎麼看怎麼學都認為他不對勁。特別是 Active Record 的部份,為什麼要搞得層層封裝來操作資料庫,除了感覺比較簡單外,我並不覺得真的有太大的實用之處。

速度因為太多層的封裝,比不上直接 Query(我之前寫一個不完整的就快上百行 PHP 了),靈活方面也比不上直接下 SQL。

這一陣子在用 Drupal ,也是覺得開發速度不會比 Ruby on Rails 差,沒有多餘的 OO 封裝和 MVC,一樣可以做到相同的事。

唯一比較爛的一點是 Drupal 的 Theme System 真的不太好用,要做到程式碼和 HTML 分離有點麻煩,不過這個是 Theme System 的缺陷,和用不用 MVC 架構沒有太大的關係。

事實上,我覺得網頁應用程式用程序導向來寫還比較合理,畢竟一個網址和 request 下來,要做的事情是固定的,又不像 GUI 可以隨便亂點亂按,程序導向還比較直覺。

而且我相信一定很多人和我一樣,玩 Ruby on Rails 或 PHPCake 的時候,根本就是把 Control 的部份也丟到 Model,或把該在 Model 檢查的東西丟到 Control 裡去做。

於是到最後根本沒辦法真的達到 Model/Control/View 的分離,到最後還是資料庫的 Schema 一改,就全部得改。XD

回響