星期六, 12月 30, 2006

編輯作品:PHP Smarty 樣版引擎 -- 解決版面‧程式碼糾纏不清的困境

凡是從事網頁程式開發者,最終都會遇到與版面設計人員之間的紛爭,不論是設計人員誤改了程式員完美邏輯的程式、抑或是程式員粗心的弄亂了設計人員精心配置的精美頁面,總是都想怪對方,又都怪不得對方的尷尬窘境。為了解決這個問題,綜觀各方意見,MVC似乎是個一致的答案。所以ASP.NET搬出了Code behind;JSP雖然沒強制,但骨子裡發想的就是MVC架構;近來竄起的RoR則更進一步,只有MVC,否則寫不出程式。那麼網頁開發一方之霸的PHP呢?Smarty就是一種可能性。

Smarty雖然也走MVC的路,但是以最寬鬆的方式,只把V(iew)抽離出來,M(odel)與C(ontroller)程式員可以自我發揮。我自己的觀察,PHP開發人員中服膺資訊理論者說實話比例並不很高,也正是這樣的特性,和PHP的簡易入門與高度彈性相匹配,因而造就了PHP歷久不衰的盛世。如果從這個角度看,Smarty也許是最適合PHP程式員進入MVC的方式,先把最惱人不得不解決的設計人員共事問題解決掉,剩下的就可由程式員自由發揮,想完全MVC也好、MC共體也好,都行,程式員自己寫的開心就好。

企劃這本書是個嘗試的開端,過往書市中PHP的書籍大致上分成三類:
  • PHP+MySQL入門學習
  • PHP+Dreamweaver快速開發
  • PHP範例集
主要都是集中在入門學習與快速開發上,鮮少對於程式開發本身的技術或是方法論的進階書籍,所以希望能以這本書作為試金石,試探PHP族群在這類書籍的接受度,希望能夠有好的結果。

延伸閱讀:

4 則留言:

  1. 「PHP開發人員中服膺資訊理論者說實話比例並不很高」

    這句完全看不懂...|||orz (驚覺自己的國文程度太差...)

    不過 PHP 很自由這點倒是沒錯,是優點也是缺點。這本書也算是我個人在技術界發表作品的試金石,雖然目前看來不是很有魅力就是了。

    這裡也感謝黃大哥的支持,沒有你的話,這本書大概也只是我自己手邊的心得整理而已。

    回覆刪除
  2. 應該是我寫的不好,不是你國文程度不好,我的意思是說許多PHP開發人員(包含個人、SOHO等等在內)寫起程式來不見得都會OO、結構化、模組化、MVC啦,未必不知道這些理論或是方法好,但實作時先把東西做出來再說。

    很高興跟你合作,希望能再有新的想法!

    回覆刪除
  3. 作者已經移除這則留言。

    回覆刪除
  4. PHP很容易就寫出HTML + PHP Code + SQL 的 Page。如果沒有極度的自我要求,在台灣目前的環境、趕鴨子上架的專案開發方式,很難做到結構化、系統化。更何況案子都很小,很急。

    我在公司的 partner ,用JSP,縱使 Java已經是很OO的語言,許多的guide line都告訴我們不要寫 scriptlet 的 jsp。我也千叮囑萬叮嚀,叫他嘗試用 tag library,叫他直接用我寫好的persistence layer的class。請他多用 serlvet + POJO。也比較好 debug 和維護。

    可是他依然每個功能都給我寫一個 JSP + HTML + JDBC + SQL .... 誰叫我給他 DB Administrator 的權限呢?怪誰?

    去要求一個不是真正喜愛 programming 與 programmer 使用需要反覆思考精雕細琢的 OO 與 Design Pattern 框架。

    有實務上的困難度!

    但,是否真心喜愛、追求完美與熱忱是關鍵!

    回覆刪除