Laravel 還是Lumen?
Laravel 還是Lumen?相信有不少人在糾結這個問題,相對來講,我並不推薦使用Lumen,因為作者的更新維護很明顯還是偏重於Laravel 的,還有一個理由就是Laravel 已經包含了Lumen 的全部功能。
不要盲目追求性能,見到很多朋友出現的一個通用現象,在使用Lumen 的時候各種想辦法解決在Laravel 裡已經有的東西,比如Session、模版引擎等,首先在姿勢上就已經不正確了,它本就不是為了這種場景而生的東西。
最核心的一點很多人沒有註意到,網上各種框架性能對比,都是在特別小的邏輯環境下測試的,但是,我們的應用遠比它們複雜得多。所以,當你把一個應用開發完成時再來對比,你就發現差異並沒有那麼大了。在這種情況下我更傾向於更快的開發速度,更低的維護成本。
很多人一討論性能就把這個問題的討論點始終放在框架與語言上,這是錯誤的。同樣的語言,同樣的框架,不同編碼水平的人,寫出同樣功能,性能也可以差幾十上百倍。舉一個真實的特別典型的例子,之前交流群裡一哥們問了一個問題:為啥我就一個首頁文章列表,Laravel 跑起來這麼慢啊?這框架性能也太差了吧?結果點開他貼圖一看,debugbar 上顯示這次請求一共產生了43 條SQL ……,他在循環裡查詢作者訊息……,後來告訴他細看文檔使用正確姿勢以後,3 條SQL 解決了問題。
關注結構,好的設計模式能夠很好的幫你解決項目各模塊間的複雜關係與交錯的邏輯。網上有很多不錯的模式實踐,以及很多朋友基於Laravel做的開源項目也都有著不錯的代碼結構設計,比如Summer的phphub5,當然了,這裡也厚著臉皮推荐一下我寫的一些輪子: overtrue (安正超) 。
看到很多朋友在Laravel裡寫著麵條式的代碼,挺心疼的,建議大家去仔細閱讀並領會Laravel作者寫的那本書《From Apprentice To Artisan》,開源台灣有朋友翻譯,叫《從百草園到三味書屋》 。裡面有很多關於Laravel 作者對框架設計的思維模式,以及很多編碼及應用架構方面的分享。
Laravel 本身就很美,加上正確的去使用,才能在我們的應用裡發揮它的長處,避免麵條式的代碼,合理的拆分邏輯,才是我們應該努力學習與改進的地方,而不是整天糾結選什麼框架與性能好壞。很多人說Laravel 入門太難,不像某些框架那麼易上手。連PHP 基本語法都用不熟悉的人,確實上不了手,畢竟,這樣的人就像木偶,需要一個人給他定死步驟拉著走才能知道幹什麼。
人生苦短,我用Laravel 。