今天我們再來談談下2017年的php發展趨勢,以及身為一個php程式設計師的職涯發展方向,並給了十點建議,做一個與時俱進的php程式設計師!
開課通知:php中文網《第10期PHP線上訓練班》正在報名中!
PHP 從誕生到現在已經有20多年歷史,從Web時代興起到行動網路退潮,網路領域各種程式語言和科技層出不窮, Node.js 、 GO 、 Python 不斷在挑戰PHP 的地位。這些技巧的推動者非常熱衷於唱衰 PHP , PHP 語言的未來在哪裡? PHP 程式設計師當如何因應未來的變革?
作為老牌的Web後端程式語言,PHP 在全球市場佔有率非常高,僅次於Java ,從各個招募網站的數據上來看PHP 開發的職位非常多,薪資水準也非常不錯。實際在中小企業、網路創業公司PHP的市場地位是高於 Java 的。 Java 在超大型企業、傳統軟體產業、金融領域優勢更大。目前來看 Node.js、 GO 、 Python 、 Ruby 等語言還難以企及PHP和Java。
PHP 語言之所以能有今天的地位,得益於PHP語言設計者一直遵從實用主義,將科技的複雜性隱藏在底層。 PHP 語言入門簡單,容易掌握,程式健全性好,不容易出現像 Java 、 C++ 等其他語言那樣複雜的問題,如記憶體洩漏和 Crash ,追蹤偵錯相對輕鬆很多。 PHP 官方提供的標準函式庫非常強大,各種功能函數都能在官方的標準函式庫中找到,包括MySQL、Memcache、Redis、GD圖形函式庫、CURL、XML、JSON等等,免除了開發者到處找函式庫的煩惱。 PHP 的文檔非常棒,每個函數都有詳細的說明和使用範例。第三方類別庫和工具、程式碼、專案也很豐富。開發者可以快速、有效率地使用 PHP 編寫開發各類軟體。到目前為止市面上仍然沒有出現比 PHP 更簡單易用的程式語言。所以 PHP 的前景還是很廣闊的,與其糾結於程式語言的選擇,不如好好地深入學習使用 PHP 。
身為一個資深的 PHP 開發者,在技術上給各位 PHP 程式十點未來的建議,希望對大家有幫助。
第一點就要提 Composer ,自從 Composer 出現後,PHP 的依賴管理可以變得非常簡單。程式內依賴一些類別庫和框架,直接使用 Composer 引入即可,透過使用 <span style="font-size: 16px;">composer
update</span>
安裝所依賴的套件。解決了過去載入外部庫的各種難題。 Composer 也有國內鏡像,速度非常快。現在絕大部分PHP開源的專案都提供了 Composer 的支持,建議大家在專案中使用 Composer 來解決 PHP 程式碼套件管理的問題,不要再使用下載原始碼、手工 include 的原始方法。
PHP7 版本對Zend 引擎做了大量修改,大幅提升了PHP 語言的效能,使用PHP7 可以讓你的程式性能瞬間翻倍。即使是 WordPress 這樣重量級的軟體運行在 PHP7 都能有上千 QPS ,相當於一台伺服器每天就能處理 8,000 萬次請求。使用 PHP7 ,做好 MySQL 最佳化,使用 Memcache 和 Redis 進行加速,這套技術架構完全可以應付相當大規模的系統。除了某些億級用戶的平台之外,一般規模的系統完全沒有壓力。 (相關推薦:php自學指南,php從入門到精通自學路徑
PSR 是php-fig.org 組織制定的PHP語言開發規範,約定了許多方面的規則,如命名空間、類別名稱規範、編碼風格標準、Autoload、公共介面等。現在已經成為PHP技術社群事實上的標準了。很多知名的 PHP 框架和類別函式庫都遵守了 PSR 規範。 PHP 開發者應當學習掌握 PSR 規範,在開發程式時應盡量遵循 PSR 規範。
2017 年 PHP 還侷限在做 Web 網站嗎? No ,如果你還不知道 Swoole ,趕快去了解一下吧。 Swoole 的口號是重新定義 PHP 語言,Swoole 是一個非同步並行的通訊引擎,作為 PHP 的擴充來運作。 Node.js 的非同步回呼 Swoole 有,Go語言的協程 Swoole 也有,完全顛覆了對 PHP 的認知。使用 Swoole PHP 可以實現常駐記憶體的 Server 程序,可以實現 TCP 、 UDP 非同步網路通訊的程式開發。過去PHP只能做一個 Web 網站,現在使用 Swoole 可以做 Java 、C++ 才能實現的通訊服務,例如 WebSocket 即使通訊、聊天、推播伺服器、RPC 遠端呼叫服務、網關、代理、遊戲伺服器等。如果你想用 PHP 做點 Web 系統以外的東西,Swoole 是最好的選擇。
最近幾年最火熱的PHP 框架,官網號稱是為Web 藝術家設計的框架,可見這套框架有多優雅。 Laravel 提供的功能模組豐富,API 設計簡潔,表達力強。而且它的社群非常活躍,程式碼貢獻者眾多,第三方的插件非常多,生態系統相當繁榮。 Laravel 底層使用了許多 symfony2 元件,透過 composer 實現了依賴管理。如果還在糾結使用什麼PHP框架,不如選擇 Laravel 。 Laravel 提供的命令列工具基於 symfony.console 實現,功能強大,整合了各種專案管理、自動生成程式碼的功能。 (相關推薦:Laravel5.2部落格實戰影片教學#)
#PHP5.3 之後支援了類似Java 的jar 包,名為phar。用來將多個 PHP 檔案打包為一個檔案。這個特性使得 PHP 也可以像 Java 一樣方便地實作應用程式打包和元件化。一個應用程式可以打成一個 Phar 包,直接放到
PHP-FPM 中運作。配合 Swoole ,可以在命令列下執行 <span style="font-size: 16px;">php server.phar</span>
一鍵啟動伺服器。 PHP 的程式碼包可以用
Phar 打包成元件,放到 Swoole 的伺服器容器中去載入執行。
任何技術有優點都有缺點,PHP 作為動態腳本語言,優點是開發方便效率高。缺點就是性能差。在密集運算的場景下比 C 、 C++ 相差幾十倍甚至上百倍。另外 PHP 不可以直接操作底層,需要依賴擴充函式庫來提供 API 實作。 PHP 程式設計師可以學習靜態編譯語言作為補充實作動靜互補,C/C++/Go 都是不錯的選擇。而且靜態語言的程式設計體驗與動態語言完全不同,學習過程可以讓你得到更大的提升。 (相關推薦: C++影片教學)
掌握C/C++ 語言後,還可以閱讀PHP 、 Swoole 、 Nginx 、Redis 、 Linux核心等開源軟體的原始碼,了解其底層運作原理。
現在最新版本的Swoole提供了C++擴充模組的支持,封裝了Zend API,用C++操作PHP變得很簡單,可以用C++實作PHP擴充函式和類別。
作為 Web 前端新世代標準,HTML5 未來前景非常廣闊,市場需求非常大。從 PC 網站、B/S 企業軟體、行動網頁、APP,這些領域都在擁抱 HTML5,掌握了 HTML5 才能在下一波網路科技大潮中存活下來。 (相關推薦: Html5影片教學)
############################################# #####PHP 程式設計師除了寫後台程式之外,還有很大一部分工作在展現層,和瀏覽器前端打交道。 2017 年你還在用 jQuery 操作 DOM 實作介面渲染嗎?已經完全 out 了。現在用 Vue.js 可以非常方便地實作資料和 DOM 元素的綁定。透過 Ajax 請求後台介面返回資料後,更新前端資料自動實現介面渲染。 2017 年再不學 Vue 就太晚了。 ######
如果你不光要寫 Web 程序,同時也希望兼顧 Android 、IOS 、PC 用戶端等平台,React Native 是個不錯的選擇。
網路的未來屬於人工智慧,如果你還不了解機器學習、深度學習、人工智能這些概念,那你需要盡快學習了解一下。現在網路巨頭們都在佈局人工智慧,包括 Google 、 Facebook 、微軟、亞馬遜 和國內的百度。雖然現在還處於科學研究的階段,但未來網路的各個領域都會應用到人工智慧,包括自動駕駛、大數據分析、網路遊戲、圖像辨識、語言處理等。當然現在普通的工程師可能還無法參與到人工智慧產品中,但至少應該要理解深度學習/人工智慧的基本概念和原理。
【相關推薦】