首頁  >  文章  >  關於2018年後端技術分析總結

關於2018年後端技術分析總結

小云云
小云云原創
2018-02-01 14:01:012088瀏覽

前面我們和大家分享過2018年的前端技術趨勢總結,本文我們針對後端再和大家分享一下關於2018年後端技術分析總結,希望對大家有用。

Node.js

#雖然Node.js 也很熱門,很流行,但還是很少見企業將Node.js 作為公司後端方面的主要程式語言。 C++、Java、PHP、Python 語言同樣也有一些類似的方案,包括 Swoole-1.0 也是基於類似 Node.js 的非同步回呼模式。

本質原因是非同步回呼的技術方案,以及在它之上所做的一些最佳化方案,包括Promise、Future、Yield/Generator、Async/Await 等,改變了程式開發的風格和習慣。如果要使用這些技術,那麼工程師需要額外學習這些關鍵字和函數的使用方法。

使用這些技術方案是無法相容已有程式的。可以說研發成本龐大,難以平滑過渡。影響了非同步回調技術堆疊的普及。這種程式模式很難讓所有人都接受。

非同步模式

Go 語言越來越熱門,許多大型網路公司後端正在轉向 GO 。 Java 圈知名的服務化框架 Dubbo 也宣布轉型非同步模式。這是一個大趨勢,非同步模式已經被市場驗證和認可。

在 Web 伺服器選擇上,幾年前大部分人就開始選擇非同步非阻塞的 Nginx,而不是同步阻塞的 Apache。就是因為像 Nginx 這樣的非同步程序,它的適應性更好、並發能力更強。現在在後端業務開發程式設計方面,技術力量強的團隊已經開始將技術堆疊從同步模式切換為非同步了。

同步阻塞模式有較多缺陷,並發能力弱、適應性差、慢速請求導致服務不可用。如:後台介面中呼叫第三方 API 的場景,同步模式效果極差。過去那些使用 Java、PHP、C++、Python、Ruby 語言開發的同步阻塞模式框架,使用的人越來越少。

協程

而協程模式,兼顧了同步阻塞的可維護性和非同步非阻塞的高並發能力。將會成為未來後端開發領域的主流技術方案。

最重要的,協程模式只需要對已有專案程式碼進行少量調整就可以運作起來,甚至可以完全相容於舊專案。只需要框架層進行相容即可。這使得團隊可以平滑過渡。

使用協程模式,開發者完全不需要學習額外的關鍵字和函數用法。編碼風格與同步模式下是完全一致的。

各種協程技術裡,<span style="font-size: 14px;">GO</span># 是最耀眼的那一個。協程、通道、靜態語言、效能、富編譯、標準函式庫豐富、生態完整、Google 等,優勢太多了。 GO 語言,個人認為是目前所有程式語言中,最值得學習的

<span style="font-size: 14px;">Swoole 2.x</span> 讓 PHP 這門 20多年歷史的老牌後台程式語言也能有協程的能力。相比<span style="font-size: 14px;">Go</span> 這樣的技術,<span style="font-size: 14px;">#PHP + Swoole</span> 的技術棧,更適合快速開發、快速迭代、業務驅動的場景。畢竟動態語言比靜態語言還是更靈活、開發效率更高。而 <span style="font-size: 14px;">Go</span> 更適合用來撰寫系統層級軟體、核心業務。

2018 年我重建了swoole framework 這個很老的項目,底層支援<span style="font-size: 14px;">Swoole 2.x</span># 協程模式。主要原因是車輪公司內部有許多專案基於這個框架,尤其是服務層全部使用了 swoole framework。我們希望業務代碼一行不改,可以一鍵切換為協程模式。理論上其他的同步阻塞PHP 框架,如Laravel 、Yii ,都可以實現只修改底層相容<span style="font-size: 14px;">Swoole 2.x</span> 協程,實現專案程式碼無縫切換協程模式。

使用協程後,整個系統的效能、並發能力、穩定性有了巨大提升。過去,線上經常出現一個慢請求導致整個伺服器卡住的問題不存在了。

PHP & Swoole

雖然 Swoole 2.0 只有不到兩年的歷史,相比 Go 語言 10 年的耕耘,還有很長一段路要走。但比起 GO 這樣的靜態語言,PHP + Swoole 還是有許多優點的,PHP 更簡單易用,PHP 是動態語言,使用起來更有彈性。

當然,如果是新專案還是推薦使用Swoft 這個專門為<span style="font-size: 14px;">Swoole 2.x</span> 的框架,它的歷史包袱較少,因此穩定性較好。

現在有了 Swoole 2.0 協程,我們對 PHP 的未來仍然充滿信心。

相關推薦:

19 個JavaScript 有用的簡寫技術分享

2018年web開發者不得不知的技術趨勢分析

php技術提升心得與方法


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn