2010-09-04

讀書: 專業 PHP 5 程式設計

專業PHP5程式設計

原文書名:Professional PHP 5

如果你受夠了一般坊間的書對PHP物件導向的膚淺介紹,喔,對,就像學生跟老師class、或者狗跟貓繼承了動物所以都會叫,這種看了好像有點道理,但是完全無法明白這跟網頁程式有什麼相關的屁話,那麼這本書鐵定會給你不一樣的感受。

該怎麼說呢,我看過的書裡,這是第一本真的能「有效」利用物件導向來改善 PHP 網頁開發流程的書。

PHP 的基本風格就是大雜燴,HTML 與程式碼夾雜一起。這也無可厚非,因為 PHP 的特色就是快速直覺。但是我以前很難想像,原來PHP也可以寫得有組織,有條理,很容易開發跟維護。

本書的第一部份介紹 PropertyObject:將資料以物件封裝起來,切開資料庫跟網頁的關聯,於是乎網頁的程式變得很簡潔,很好讀,資料部份的程式也因為集中在一起,很容易維護。這種工具封裝再利用恰巧展現了物件導向的威力,傳統的PHP鐵定做不到的,給當時的我很大的震撼。

於是我照著書本的想法自己寫了一個輕巧的資料存取模組,用在網路程式課程的期末專題。起頭碰到很多困難,花了很多時間在調校物件,但一旦工具準備好後,倒吃甘蔗的感覺就來了,最後一天晚上甚至一口氣衝完好多個頁面功能,這是我人生第一次嚐到物件導向的甜頭,原來物件導向真的有用,而且很有用。

在今天 PHP Framework 滿天飛的狀況來看,這本書的內容有些過時了。比方說後來我發現我寫的資料存取小模組原來有個專有名詞叫做 ORM,而且網路上有很多高手寫了更好用、更強大的 ORM。一些知名框架像 CakePHP、 CodeIgniter 甚至提供了非常完善的解決方案來組織整個網站。

回頭來看這本書的工具,是有些陽春了。不過畢竟那都是別人寫好的工具,光使用也不會有什麼長進。有基本的PHP知識,想要一窺這些超級工具開發的秘密,那我認為這本書是非常好、非常難得的敲門磚。程式師圈子裡有句話叫做「Eat Your Own Dog Food」,意思是程式員必須要使用自己開發的工具來改善自己的工作,那本書就是這句話最好的實踐。

本書的內容其實不只這些小工具,還有很多內容像是 Design Pattern 、SOAP、MVC、 專案管理等等,簡直就是包山包海了,個人認為 Design Pattern 的部份沒什麼有用的例子,後面我則是沒有細看,不好評論。

有些缺點不得不說:其一是 code 很長而解釋稍嫌不足,而且 code 實在寫得太醜了,閱讀來實在很痛苦。我想一本教學書把程式碼寫得簡潔清楚,可以大大地增進讀者的胃口。其二是本書讀來很明顯就是分成四塊,這也沒什麼,因為有四位作者嘛,但慘的是這四位顯然配合的不好,以致於書裡產生了 PropertyObject 與 GenericObject 這兩套明明目的差不多,但就是不同的兩套實做。我初讀還困惑了一下。