對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框架
- 宗 - 觀點的對與錯
- 標準的開發框架,對企業開發有多重要?框架
- 常用的一些Node.js開發工具、開發包、框架等總結Node.js框架
- 對 Android SDK 開發的一些個人心得Android
- 如何發表自己的觀點
- phpGrace開源PHP框架PHP框架
- 專案開發中對成長的一些思考
- 酷!一鍵構建我自己的PHP框架的開發環境PHP框架開發環境
- 模仿KOA,用php來寫一個極簡的開發框架PHP框架
- 四大主流PHP框架的優點和缺點總結PHP框架
- 硬核觀察 #413 Linus Torvalds 在採訪中再次提及一些觀點
- 初學 PHP 對於回撥函式的一些理解PHP函式
- ArcObjects SDK開發 一些可直接呼叫的對話方塊Object
- [譯] 前端開發框架的實戰對比(2018 年更新)前端框架
- 淺談 SAP UI5 框架對一些其他前端框架比如 Vue 的支援UI框架前端Vue
- 直播系統開發過程中的一些關鍵點
- 開發者談如何讓遊戲的開發過程本身也相對有趣一些遊戲
- PPT 分享:《10 個 Go Web 開發框架對比》GoWeb框架
- 對開放的價值觀持開放態度
- 移動APP開發框架盤點2:Web移動前端框架大全APP框架Web前端
- 敏捷開發框架有哪些?都有什麼特點敏捷框架
- 開發者觀點:「獨立」一詞已失去其意義
- php的一些函式PHP函式
- 大學期間承接軟體專案的一些個人觀點
- 點對點支付系統開發,跨境支付平臺搭建
- 容器技術對 DevOps 的一些啟發dev
- 當代開發者的好幫手,淺析.NET敏捷開發框架的優勢與特點敏捷框架
- 突然發現公司的價值觀有點恐怖
- Java開發技巧——併發控制中的樂觀鎖與悲觀鎖Java
- php開發memcachedPHP
- 五大 JAVA Web 框架的優缺點對比JavaWeb框架
- Poco框架實操:對節點可實施的操作框架
- PHP_TP5框架開發後端介面(程式碼編寫思路)PHP框架後端
- Web快速開發:一套標準開發框架對企業有多重要Web框架
- 總結一些開發語言對應的技術應用場景