本文我們將主要和大家淺談一下2018年後端技術的趨勢,希望能幫助大家對後端技術有更清晰的思路。
非同步模式
Go 語言越來越熱門,許多大型網路公司後端正在轉向 GO 。 Java 圈知名的服務化框架 Dubbo 也宣布轉型非同步模式。這是一個大趨勢,非同步模式已經被市場驗證和認可。
在 Web 伺服器選擇上,幾年前大部分人就開始選擇非同步非阻塞的 Nginx,而不是同步阻塞的 Apache。就是因為像 Nginx 這樣的非同步程序,它的適應性更好、並發能力更強。現在在後端業務開發程式設計方面,技術力量強的團隊已經開始將技術堆疊從同步模式切換為非同步了。
同步阻塞模式有較多缺陷,並發能力弱、適應性差、慢速請求導致服務不可用。如:後台介面中呼叫第三方 API 的場景,同步模式效果極差。過去那些使用 Java、PHP、C++、Python、Ruby 語言開發的同步阻塞模式框架,使用的人越來越少。
Node.js
雖然 Node.js 也很熱門,很流行,但仍然很少見到企業將 Node.js 作為公司後端方面的主要程式語言。 C++、Java、PHP、Python 語言同樣也有一些類似的方案,包括 Swoole-1.0 也是基於類似 Node.js 的非同步回呼模式。
本質原因是非同步回呼的技術方案,以及一些在它之上所做的最佳化方案,包括 Promise、Future、Yield/Generator、Async/Await 等,改變了程式開發的風格和習慣。如果要使用這些技術,那麼工程師需要額外學習這些關鍵字和函數的使用方法。
使用這些技術方案是無法相容已有程式的。 可以說研發成本龐大,難以平滑過渡。影響了非同步回調技術堆疊的普及。這種程式模式很難讓所有人都接受。
協程
而協程模式,兼顧了同步阻塞的可維護性和非同步非阻塞的高並發能力。將會成為未來後端開發領域的主流技術方案。
最重要的,協程模式只需要對已有專案程式碼進行少量調整就可以運作起來,甚至可以完全相容於舊專案。只需要框架層進行相容即可。這使得團隊可以平滑過渡。
使用協程模式,開發者完全不需要學習額外的關鍵字和函數用法。編碼風格與同步模式下是完全一致的。
各種協程技術裡,GO
是最耀眼的那一個。協程、通道、靜態語言、效能、富編譯、標準函式庫豐富、生態完整、Google 等,優勢太多了。 GO 語言,個人認為是目前所有程式語言中,最值得學習的。
Swoole 2.x
讓 PHP 這門 20多年歷史的老牌後台程式語言也能有協程的能力。相較之下 Go
這樣的技術,PHP + Swoole
的技術棧,更適合快速開發、快速迭代、業務驅動的場景。畢竟動態語言比靜態語言還是更靈活、開發效率更高。而 Go
更適合寫系統級軟體、核心業務。
2018 年我重構了 swoole framework 這個很老的項目,底層支援 Swoole 2.x
協程模式。主要原因是車輪公司內部有許多專案基於這個框架,尤其是服務層全部使用了 swoole framework。我們希望業務代碼一行不改,可以一鍵切換為協程模式。理論上其他的同步阻塞 PHP 框架,如 Laravel 、Yii ,都可以實現只修改底層相容 Swoole 2.x
協程,實現專案程式碼無縫切換協程模式。
使用協程後,整個系統的效能、同時能力、穩定性有了巨大提升。過去,線上經常出現一個慢請求導致整個伺服器卡住的問題不存在了。
PHP & Swoole
雖然 Swoole 2.0 只有不到兩年的歷史,相比 Go 語言 10 年的耕耘,還有很長一段路要走。但比起 GO 這樣的靜態語言,PHP + Swoole 還是有許多優點的,PHP 更簡單易用,PHP 是動態語言,使用起來更有彈性。
當然,如果是新專案還是推薦使用 Swoft 這個專門為 Swoole 2.x
的框架,它的歷史包袱更少,因此穩定性更好。
現在有了 Swoole 2.0 協程,我們對 PHP 的未來仍然充滿信心。
相關推薦:

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用