php項目開發經驗

php項目開發經驗(轉載)

    兩個月前我幾乎完全不會PHP,糊里糊塗的接手了一個手機網遊門戶的開發,臨陣退縮是沒有用的,IT技術作爲現今工業社會裏更新換代最快的一個行業,任憑誰也不可能全部掌握所有的技術,作爲一個優秀的開發人員,隨時學習新技術並且儘可能的最快掌握應用到項目中,便是必需具備的基本素質。手藝總是多少有一些相通之處和可繼承的,琵琶彈得好、學習吉他自然也不難,從鋼琴到小提琴跨度是有點大、但是音樂知識也是一樣的。快速的學習需要紮實的基礎、準確找出共通點的敏銳觸角、舉一反三的領悟力、鍥而不捨尋求答案的毅力。PHP是一隻兩棲動物,自5.0之後開始支持面向對象,但是同時兼容面向過程的編寫。這特性使得PHP容易上手卻難以精通。兩個月裏摸着石頭過河,邊學邊做到最後項目完成,不敢以高手自居,多少掌握了一些PHP學習和編程的小竅門,爲了避免如我一樣的初學者或項目需求者多走彎路,特地整理一下心得與同行分享。

    與國外和香港臺灣地區相比,國內的PHP程序員相對較少,精通的更是爲數不多。一個很大的原因是中國大陸是盜版大國,大夥都愛用Windows系統,用.Net寫程序,用Sqlserver存儲數據,反正微軟不會上門開罰單。兩個月的項目開發週期過去了一個月,後臺系統我都幾乎寫完了還沒有招到我滿意的PHP程序員。有兩個合符標準的,一個因爲個性有點特立獨行,另外一個要價7K超出公司預算被我Pass掉,導致最後我招了一個編程基礎比較好的小夥子進來自己帶。當我還在上一家公司做.Net項目時,有個同事曾經對我說他羨慕PHP程序員的薪資高,我當時不以爲然,那種程序寫得好薪資不高?現在倒有了更深的認識,PHP程序員薪資高,不是因爲PHP程序寫得好,一般而言相關的技能也得有相當的程度。隨便在網上找一份PHP程序員的招聘一起看看。

    1. 兩年以上PHP開發經驗,熟悉smarty模板,熟悉Linux+Apache+Mysql+PHP架構,熟悉Zend架構者尤好;

    2. 具有MySQL索引優化、查詢優化和存儲優化經驗、PHP緩存技術、靜態化設計方面的經驗;

    3.熟悉Discuz!,UCHome產品,能做二次開發;  

    這也是我招人時所要求的。一般而言,PHP的項目不會用微軟的windows平臺和sqlserver數據庫,除非公司足夠大,不然linux服務器的管理便是由PHP程序員兼顧。Mysql數據庫可不像微軟的Sqlserver那麼傻瓜化,配置與調優是一門大學問。稍爲正式一點的門戶都會搭配着上Discuz論壇或者UCHome,整合與二次開發便是無可避免的事情。當一個PHP程序員具備這些技能時,薪資高些也在情理之中。各位學PHP的朋友們,看到這裏應該對自己的學習計劃有比較清楚的認知了吧。

    作爲開源世界的前鋒,PHP有很多優秀的架構,如Zend, CakePhp, Symfony等等。其實一直到項目開發完畢我纔開始接觸Zend,一個成熟的架構的確能減輕不少工作量,但是如果在項目啓動時就貿然上這麼大的框架,而本身對PHP技術沒有很深瞭解的情況下是很難駕馭的了的,勢必引發出各種各樣棘手的問題。正是考慮到了這一點,所以我步步爲營的往前走。先是採用最原始的方式,將PHP與HTML代碼混合着編碼,做完兩個模塊後對PHP語法和她的一些特性、怪癖有了清楚的瞭解後開始加入Smarty模板,將業務邏輯與用戶界面進行分離。再做幾個模塊,搞清楚了Smarty的那套語法、標籤和組件後再把數據處理剝離出來形成了MVC架構,一點一點的完善,既保證了開發的進度,也使得系統越來越合理,一直到最後穩當的完成了整個項目,沒出大亂子。到了最後再回頭來看Zend,CakePhp這些覺得也沒什麼神祕。

    因爲開源,所以PHP是個沒爹沒孃的孩子,不像微軟,無論是平臺、語言、數據庫、IDE全都打上Microsoft Family的烙印,大多數東西微軟都封裝好了,你不知道爲什麼,也不需要知道爲什麼,使用就是了。初用PHP難免會遇到一些奇奇怪怪的問題,例如相對路徑與絕對路徑、數據庫亂碼、header跳轉報錯、session也報錯等等。也正是因爲開源,所以網絡上幾乎都有相應的解決方案,只要你真正瞭解問題的根源,自然能搜索得到相對應的答案。

    WEB開發很大的比重是在於數據庫的操縱,SQL便是程序員必需精通的一門技能。相信有不少PHP程序員如我一樣,是從微軟開發平臺轉行過來的。用習慣了Sqlserver,改用Mysql時也會遇到一些小挫折,畢竟是兩家公司不一樣的產品。最明顯的就是指定行數的關鍵字top變成了limit,連接符+在mysql中變成了concat等。這些倒都是小事情,記得就是了。有一種SQL卻讓我有點不爽。如:select * from table1 where userid in (select top 10 id from table2 order by createdate desc),在mysql裏因爲不支持而改成了select * from table1 where userid in (select id from (select id from table2 order by createDate desc limit 10) as t ) order by createDate desc。這樣累贅的語義很讓我煩惱總記不住,最後準備了一本mysql cookbook。

    PHP是一門優秀的開發語言,以後將會繼續大放異彩,特別是在facebook推出hithopPHP之後。真要說到項目開發,那是一本書的篇幅也講不完的事情。以上只是總結我在開發過程中的感受和經驗,真正的應用還得在項目實戰中自由發揮。一千個人眼裏有一千個哈姆雷特,一千個人就有一千種解決問題的辦法,但終究只有一種方法是最有效直接的,編程、就是不停的尋找那種方法。

PHP書籍推薦:

書店裏PHP開發的書籍非常多,但真正優秀的卻很少。下面推舉幾本我看過、用過、感覺不錯的書供學習參考。

《大道PHP-LAMP+Zend+開源框架整合》 電子工業出版社

這本書是我接手PHP項目後買的第一本PHP書籍,99塊人民幣,846頁的篇幅,一直到項目完成我都沒完整看完,只是把它當工具書查閱使用。這本書不太適合初學者,裏面有不少案例是錯誤的,必需修改後才能運行。Zend框架也介紹得太過簡單。

《PHP Web2.0開發實戰》 人民郵電出版社

老外寫的一本書,技術含量比較高,詳細介紹Zend架構與Smarty配合使用,所用的案例也是循序漸進步步深入。適合有基礎的PHP程序員閱讀。

《PHP經典實例》 中國電力出版社

也是翻譯自國外,O'Reiely出版社的技術類書籍就好比中華書局的史學書,商務印書館的學術書一樣,絕對可以放心。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章