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