PHP 是最好的語言?關於 PHP 開發未來的 6 點建議

類別: IT
標籤: php
PHP

PHP 為什麼是最好的語言?你肯定聽過這個段子:

女孩:“你能讓這個論壇的人都吵起來, 我今晚就跟你走。”

程式設計師: “PHP是最好的語言!”

論壇炸鍋了, 各種吵架…

女孩:“ 服了你了, 我們走吧你想幹啥都行。”

程式設計師: “今天不行, 我一定要說服他們, PHP必須是最好的語言。”

上面雖然是程式設計師的玩笑梗,但“PHP 是最好的語言” 這句話最早可能出自 2001 年 7 月的 PHP 官方文件。

PHP is the best languages for web programming , but what about other languages ?

PHP 是最好的網路程式語言,那麼其他語言呢?

—— PHP and other languages


拋開玩笑梗,認真來說,PHP 的確稱得上最好的語言之一。

首先,PHP 入門簡單,容易掌握,對新手友好,而且程式健壯性好,不容易出現像 Java 、 C++ 等其他語言那樣複雜的問題,如記憶體洩漏和 Crash ,跟蹤除錯相對輕鬆很多。

再者,功能函式應有盡有,不需要重新造輪子。PHP 官方提供的標準庫非常強大,各種功能函式包括MySQL、Memcache、Redis、GD圖形庫、CURL、XML、JSON等等都能找到,免除了開發者到處找庫的煩惱。

另外,PHP 文件詳細易懂,每個函式都有仔細的說明和使用示例。第三方類庫和工具、程式碼、專案也很豐富。開發者可以快速、高效地使用 PHP 編寫開發各類軟體。

可以說,目前為止市面上仍然沒有出現比 PHP 更簡單易用的程式語言。然而,自 PHP 誕生到現在的 20 多年間,從 Web 時代興起到移動網際網路退潮,網際網路領域各種程式語言和技術層出不窮, Node.js 、 GO 、 Python 不斷地在挑戰 PHP 的地位。PHP 語言的侷限也開始凸顯,PHP 語言未來在哪裡?PHP 程式設計師當如何應對未來的變革?

效能問題

PHP 最令人詬病的一點非效能莫屬,作為一門動態指令碼語言,PHP 的優點是開發方便效率高,缺點就是效能差。在密集運算的場景下比 C 、 C++ 相差幾十倍甚至上百倍。另外 PHP 不可以直接操作底層,需要依賴擴充套件庫來提供 API 實現。

使用 PHP7

PHP7 版本對 Zend 引擎做了大量修改,大幅提升了 PHP 語言的效能,使用 PHP7 可以使程式效能瞬間翻倍。即使是 WordPress 這樣重量級的軟體執行在 PHP7 都能有上千 QPS ,相當於一臺伺服器每天就能處理 8000 萬次請求。使用 PHP7 ,做好 MySQL 優化,使用 Memcache 和 Redis 進行加速,這套技術架構完全可以應對相當大規模的系統。除了某些億級使用者的平臺之外,一般規模的系統完全沒有壓力。

學習 C/C++/GO

PHP 程式設計師可以學習一門靜態編譯語言作為補充實現動靜互補,C/C++/Go 都是不錯的選擇。而且靜態語言的程式設計體驗與動態語言完全不同,學習過程可以讓你得到更大的提升。掌握 C/C++ 語言後,還可以閱讀 PHP 、 Swoole 、 Nginx 、Redis 、 Linux核心 等開源軟體的原始碼,瞭解其底層執行原理。

現在最新版本的Swoole提供了C++擴充套件模組的支援,封裝了Zend API,用C++操作PHP變得很簡單,可以用C++實現PHP擴充套件函式和類。

管理規範

Composer

Composer 出現後,PHP 的依賴管理可以變得非常簡單。程式內依賴一些類庫和框架,直接使用 Composer 引入即可,通過使用 composer update 安裝依賴的包。解決了過去載入外部庫的各種難題。Composer 也有國內映象,速度非常快。現在絕大部分PHP開源的專案都提供了 Composer 的支援,建議大家在專案中使用 Composer 來解決 PHP 程式碼包管理的問題,不要再使用下載原始碼、手工 include 的原始方法。

PSR

PSR 是 http://www.php-fig.org/ 組織制定的PHP語言開發規範,約定了很多方面的規則,如名稱空間、類名規範、編碼風格標準、Autoload、公共介面等。現在已經成為PHP技術社群事實上的標準了。很多知名的 PHP 框架和類庫都遵守了 PSR 規範。PHP 開發者應當學習掌握 PSR 規範,在開發程式時應當儘量遵循 PSR 規範。

應用擴充套件

Vue.js

PHP 程式設計師除了寫後臺程式之外,還有很大一部分工作在展現層,和瀏覽器前端打交道。2017 年你還在用 jQuery 操作 DOM 實現介面渲染嗎?已經完全 out 了。現在用 Vue.js 可以非常方便地實現資料和 DOM 元素的繫結。通過 Ajax 請求後臺介面返回資料後,更新前端資料自動實現介面渲染。

如果你不光要寫 Web 程式,同時還希望兼顧 Android 、IOS 、PC 客戶端等平臺,React Native 是一個不錯的選擇。

Swoole

PHP 還侷限於做 Web 網站嗎?Swoole 是一個非同步並行的通訊引擎,作為 PHP 的擴充套件來執行。Node.js 的非同步回撥 Swoole 有,Go語言的協程 Swoole 也有,這完全顛覆了對 PHP 的認知。

使用 Swoole PHP 可以實現常駐記憶體的 Server 程式,可以實現 TCP 、 UDP 非同步網路通訊的程式設計開發。過去PHP只能做一個 Web 網站,現在使用 Swoole 可以做 Java 、C++ 才能實現的通訊服務,比如 WebSocket 即使通訊、聊天、推送伺服器、RPC 遠端呼叫服務、閘道器、代理、遊戲伺服器等。

可以說,Swoole 是每位 PHPer 都需掌握的必備技能。但 Swoole 的使用門檻對新手來說相對較高,需要付出一定的精力成本。

所以這一次,我們邀請了 Swoole 開源專案的創始人 —— 韓天峰參加「上海源創會」,為我們介紹 Swoole 3.0 全新的 PHP 協程程式設計模式,以及 Swoft 協程框架的使用,基於 Swoft Cloud 提供的各類元件實現 PHP 微服務架構。

除此之外,5 月 27 日(週日)上海源創會 還邀請了黃勵博(又拍雲系統開發高階工程師)、曲駿(安暢混合雲服務架構團隊負責人)、朱明智(個推B2D研發部平臺研發專家)、許雪裡(XXI系列開源軟體作者,美團點評工程師)四位行業大牛。以架構為核心,與你進行一場關於面對面的技術對話。

點選報名,與業內大咖和更多小夥伴當面交流。(社群)

社群報名連結:https://www.oschina.net/event/2278742?origin=sqrw1

掃碼報名,與業內大咖和更多小夥伴當面交流。(微信)



微信報名連結:https://www.oschina.net/event/2278742?origin=wxrw1


注:以上內容有引用和參考 2017年PHP程式設計師未來路在何方 韓天峰

https://segmentfault.com/a/1190000008888700?utm_source=tuicool&utm_medium=referral

PHP 是最好的語言?關於 PHP 開發未來的 6 點建議原文請看這裡