我為什麼選擇Laravel
以下是我個人對技術的選擇過程,完全主觀。分享這些訊息的目的,在於多一份訊息給新手作為參考,請當做個人經驗分享。
--
記得那時是2013 年中旬,個人對PHP 生態圈的感情,完全是累覺不愛了。
站在2013 年會往後看,在我過去三年的編程經歷中,開發接觸到Discuz、DiscuzX、WordPress、Drupal、Joomla、帝國、PHPWind、ThinkPHP、Codeignitor、Yii、CakePHP、Zend、Slim、Kohana、新公司的自己開發設計過氣的老框架+正在設計的新框架....
每接觸一個軟件框架,就是對一套全新的機制系統的學習,不同的類加載的實現機制、不同的核心類名稱、不同的函數名稱、不同的插件系統、不同的主題系統。但其實,大部分時候,他們做的都是同樣的事情,有些軟件架構像DiscuzX、Drupal、Joomla 的代碼尤其難啃。
看著網絡上遍布著各種《PHP 最流行30 個開源軟件》、《PHP 最流行50 個框架》的文章,開始問自己:“難道編程就是這樣子無止境的學習框架?無止境的學習這些開源軟件架構?”,後來也試過選擇一個框架作為自己的主修,從外觀上看,後台提供商的支持最靠譜的就是Zend Framework ,因為Zend 是PHP 後面的那家公司,可是做了一個項目以後,就完全做不下去了。複雜、臃腫的設計,讓你完全產生不了愛意。第二個嘗試是當時最受歡迎的框架Codeignitor ,在當時確實眼前一亮,簡單的MVC 架構,創新的路由設計,可是還是太輕了,要開發一個項目,需要裝這個裝那個,並且都是手動去裝,遇到核心沒提供的類庫(Class),得去互聯網上搜索,然後復制黏貼到手動創建的文件中。中文網頁上,有些代碼不小心加了幾個中文的, 還有( ,debug 到你開始掉頭髮。
這就是一個PHPer 在2013 年的徬徨,完全心灰意冷。在那一年,也開始接觸除了PHP以外的生態圈- Python的Django,那時候熱的燙手Nodejs的express.js,微軟的http://ASP.NET,Java的Spring,Objective-C的CocoaTouch(開始公司iOS App 的開發工作)。很快就發現了Ruby on Rails 和Gem 包管理,被他們ROR 的生態圈深深吸引。他們的設計哲學:
- 強調與註重敏捷開發;
- 約定高於配置(Convention over configuration);
- DRY(Don't repeat yourself)不要重複自己;
- 「編程愉悅性」很重要。
簡直就是不能同意更多,站在ROR 看PHP 的生態圈,PHP 生態圈簡直可以用「一盤散沙」來形容。 PHP 擁有那麼多的開發者,開發觀念還是那麼落後,大家各自為戰,那麼多的腦力,到最後都消耗在大量的重複性工作上,生產力嚴重浪費。
在2013 年底,準備完全切到ROR 上, 2014 的新年願望裡有一條: ”找一份ROR 工作“。
2014 年3 月份,接到一位朋友的邀請做創業公司的技術合夥人,開始給未來的團隊選擇技術堆棧,其實當時差不多可以決定後端選型,就是ROR。唯一讓我猶豫的是,ROR 用的是Ruby,開發群體太小,作為技術合夥人,不得不考慮後面人才引入的問題。這個時候無意間發現了Jeffrey Way 的Laravel 視頻教程,通過深入學習,以及對作者的了解,基本上可以定義:這就是PHP 中的ROR。不只是長得像ROR,他的開發哲學(上面羅列出來的)也像ROR。另外Jeffrey Way 決定了完全投身Laravel 的教育中,也加深了我對Laravel 的信心。 Jeffrey Way - Envato Tuts+ Profile是Nettuts+和Tuts+的優秀講師,幾年的教學經歷中,技術狩獵非常廣,尤其是Web開發上,寫過將近500篇的教程。最後新公司的技術堆棧,選擇了Laravel,雖然那會Laravel 還比較年輕(現在也很年輕,這裡是2016),但是Laravel 有一個巨大優勢,那就是基於PHP ,PHP 開發者眾多,潛力無限。
... 省略無數社區鏈接文字,手工加鏈接手累...
我希望Laravel 會是我學習的最後一個框架。因為
作為工匠,我更願意把我有限的生命用在作品上,而不是對工具的無止境的學習上。
--
推薦閱讀:
數據說話-最火的PHP框架是哪個? -知乎專欄
Laravel第一部中文新手書籍《Laravel入門教程》 -知乎專欄
--