對PHP開發框架的一些觀點
PHP從誕生以來就受到廣大程式設計愛好者的喜歡,成為中小站長的好幫手,並培養了大量的PHP程式設計人員,但是隨著PHP的應用越發廣泛,很多時候已不限於從事中小網站的應用,一些大型PHP專案也屢見不鮮。
當我們選擇php開發大型專案時,就不得不考慮開發效率、開發規範、後期維護等問題,這時大家往往會選擇一款人們所認可的開發框架,目前所流行的Zend Framework、、Symfony、CodeIgniter、CakePHP等都聲稱有著開發大型應用的能力。
新框架層出不窮,但當我們真正應用這些框架去實現產品又總是會有各種不同的問題產生:
一、大型框架的背後往往有著較為深厚的結構理論,最熟悉的莫過於MVC、ORM這樣耳熟能詳的理論術語,還有很多深度物件導向方面的知識,但是真正瞭解這些的人卻為數不多,使得應用門檻急劇攀升;除此大型框架中的應用細節更是紛繁複雜,學習成本也相對較高,這對於原本只是定位中小應用的PHP變得尤為尷尬。
二、PHP做為一門指令碼語言,它的執行往往基於宿主程式(如:apache、php-fpm),在單次請求上經歷建立程式、初始化環境、編譯指令碼、執行引擎、輸出、資源回收、程式銷燬等一系列過程,在程式語言層面綜合執行效率上要比編譯型語言慢上2-3個數量級,伴隨著消耗大量的系統資源,在此基礎上我們還要搭建及載入複雜的開發框架更是增加了其執行成本。而在大型應用中從不缺乏特殊需求,有時PHP加大型框架的執行效率就是致命的。
三、大型框架所考慮的因素過多,開發人員在應用時需要額外關注程式碼以外的細節過多,如:非標準約定、冗長的手冊、瑣碎的配置、複雜的檔案目錄結構、難以限制的合理性約束、千姿百態的類庫等等,使得大多數程式設計師開發過程屢糟困惑,提高開發效率也成了空話。
四、最致命的一點,框架作者不斷地尋找銀彈,試圖製作出一個滿足所有需求的怪物。大型應用對系統的鬆散耦合性要求很高,通常不可能在開發層面直接對資料進行操作,見一個簡單的SOA模型(附圖),資料層和業務層幾乎是物理隔離的,而在業務層的開發上只針對資料層提供的服務介面進行訪問。從目前的PHP開發框架來說(特別是MVC模型),通常使用ORM來直接對資料庫表進行抽象,並直接加以CRUD操作,靠譜的大型應用是不會這做的(或許適合VPS,但大型應用會選擇VPS ??)。
總結,PHP大型框架真的還處於很尷尬的地位,但是從另一方面來說,好的PHP大型框架真的是一個值得很多人學習的好榜樣,其中蘊涵了大量的設計理念、設計模式、程式碼最佳化、語言特性、軟體工程等知識體系,融匯php精髓但又遠超PHP本身。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1747/viewspace-2801495/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於前端框架的一些觀點前端框架
- 談談我對Ui設計師的一些觀點UI
- 觀點 | 港科大張潼教授最新發言:對人工智慧發展的一些思考人工智慧
- php開發的js逆向rpc框架PHPJSRPC框架
- 2013最好的PHP開發框架PHP框架
- Toro - 基於PHP的REST開發框架PHPREST框架
- PHP開發的一些漏洞安全知識PHP
- 前端開發框架對比前端框架
- Bootstrap:簡潔、直觀、強悍的前端開發框架boot前端框架
- PHP開發laravel框架的.env檔案配置PHPLaravel框架
- php底層開發框架,yaf,swoole,hiphopPHP框架
- PHP開發框架流行度排名:Laravel居首PHP框架Laravel
- 標準的開發框架,對企業開發有多重要?框架
- android開發過程中用到的一些開源框架Android框架
- 常用的一些Node.js開發工具、開發包、框架等總結Node.js框架
- 反駁"軟體開發中最流行的錯誤觀點"
- 對於新手而言,PHP開發選擇什麼開發工具,及PhpStorm的特性和Git整合要點PHPORMGit
- 針對開發者的20款移動開發框架移動開發框架
- 盤點8款最小的JavaScript前端開發框架JavaScript前端框架
- 對 Android SDK 開發的一些個人心得Android
- 專案開發中對成長的一些思考
- 常用PHP框架功能對比表PHP框架
- 我對框架的一點見解框架
- phpGrace開源PHP框架PHP框架
- PHP開源AJAX框架PHP框架
- 我的關於軟體工程的一些觀點ZT (轉)軟體工程
- 推薦2013年最佳PHP開發框架PHP框架
- 酷!一鍵構建我自己的PHP框架的開發環境PHP框架開發環境
- 模仿KOA,用php來寫一個極簡的開發框架PHP框架
- Phalcon71.2.1釋出,C開發的PHP7框架PHP框架
- 大學期間承接軟體專案的一些個人觀點
- 如何正確的對待設計模式——我的觀點設計模式
- 談談我對MySQL+PHP+Flex開發的見解MySqlPHPFlex
- 使用CodeIgniter框架快速開發PHP應用(四)框架PHP
- 使用CodeIgniter框架快速開發PHP應用(一)框架PHP
- 使用CodeIgniter框架快速開發PHP應用(二)框架PHP
- Medoo 0.9.7 釋出,PHP SQL 資料庫開發框架PHPSQL資料庫框架
- 四大主流PHP框架的優點和缺點總結PHP框架