淺談2018年後端技術趨勢
本文我們將主要和大家淺談一下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脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

StableDiffusion3的论文终于来了!这个模型于两周前发布,采用了与Sora相同的DiT(DiffusionTransformer)架构,一经发布就引起了不小的轰动。与之前版本相比,StableDiffusion3生成的图质量有了显著提升,现在支持多主题提示,并且文字书写效果也得到了改善,不再出现乱码情况。StabilityAI指出,StableDiffusion3是一个系列模型,其参数量从800M到8B不等。这一参数范围意味着该模型可以在许多便携设备上直接运行,从而显著降低了使用AI

軌跡預測在自動駕駛中承擔著重要的角色,自動駕駛軌跡預測是指透過分析車輛行駛過程中的各種數據,預測車輛未來的行駛軌跡。作為自動駕駛的核心模組,軌跡預測的品質對於下游的規劃控制至關重要。軌跡預測任務技術堆疊豐富,需熟悉自動駕駛動/靜態感知、高精地圖、車道線、神經網路架構(CNN&GNN&Transformer)技能等,入門難度很高!許多粉絲期望能夠盡快上手軌跡預測,少踩坑,今天就為大家盤點下軌跡預測常見的一些問題和入門學習方法!入門相關知識1.預習的論文有沒有切入順序? A:先看survey,p

這篇論文探討了在自動駕駛中,從不同視角(如透視圖和鳥瞰圖)準確檢測物體的問題,特別是如何有效地從透視圖(PV)到鳥瞰圖(BEV)空間轉換特徵,這一轉換是透過視覺轉換(VT)模組實施的。現有的方法大致分為兩種策略:2D到3D和3D到2D轉換。 2D到3D的方法透過預測深度機率來提升密集的2D特徵,但深度預測的固有不確定性,尤其是在遠處區域,可能會引入不準確性。而3D到2D的方法通常使用3D查詢來採樣2D特徵,並透過Transformer學習3D和2D特徵之間對應關係的注意力權重,這增加了計算和部署的

23年9月國防科大、京東和北理工的論文「DeepModelFusion:ASurvey」。深度模型整合/合併是一種新興技術,它將多個深度學習模型的參數或預測合併為一個模型。它結合了不同模型的能力來彌補單一模型的偏差和錯誤,以獲得更好的性能。而大規模深度學習模型(例如LLM和基礎模型)上的深度模型整合面臨一些挑戰,包括高運算成本、高維度參數空間、不同異質模型之間的干擾等。本文將現有的深度模型融合方法分為四類:(1)“模式連接”,透過一條損失減少的路徑將權重空間中的解連接起來,以獲得更好的模型融合初

請留意,這個方塊人正在緊鎖眉頭,思考著面前幾位「不速之客」的身份。原來她陷入了危險境地,意識到這一點後,她迅速展開腦力搜索,尋找解決問題的策略。最終,她決定先逃離現場,然後儘快尋求幫助,並立即採取行動。同時,對面的人也在進行著與她相同的思考……在《我的世界》中出現了這樣一個場景,所有的角色都由人工智慧控制。他們每個人都有著獨特的身份設定,例如之前提到的女孩就是一個年僅17歲但聰明又勇敢的快遞員。他們擁有記憶和思考能力,在這個以《我的世界》為背景的小鎮中像人類一樣生活。驅動他們的,是一款全新的、

寫在前面&筆者的個人理解基於圖像的3D重建是一項具有挑戰性的任務,涉及從一組輸入圖像推斷目標或場景的3D形狀。基於學習的方法因其直接估計3D形狀的能力而受到關注。這篇綜述論文的重點是最先進的3D重建技術,包括產生新穎的、看不見的視野。概述了高斯飛濺方法的最新發展,包括輸入類型、模型結構、輸出表示和訓練策略。也討論了尚未解決的挑戰和未來的方向。鑑於該領域的快速進展以及增強3D重建方法的眾多機會,對演算法進行全面檢查似乎至關重要。因此,本研究對高斯散射的最新進展進行了全面的概述。 (大拇指往上滑

Redis是一個開源的高效能鍵值資料庫系統,因其快速讀寫速度、支援多種資料類型、豐富的資料結構等特點,廣泛應用於即時排行榜系統中。即時排行榜系統是指以一定條件對資料進行排序的系統,例如遊戲中的積分排行榜、電商中的銷售排名等。本文將介紹Redis在建立即時排行榜系統中所用到的關鍵技術,以及具體的程式碼範例。內容包括以下幾個部分:Redis的資料類型排序算

Golang與前端技術結合:探討Golang如何在前端領域發揮作用,需要具體程式碼範例隨著互聯網和行動應用的快速發展,前端技術也愈發重要。而在這個領域中,Golang作為一門強大的後端程式語言,也可以發揮重要作用。本文將探討Golang如何與前端技術結合,以及透過具體的程式碼範例來展示其在前端領域的潛力。 Golang在前端領域的角色作為一門高效、簡潔且易於學習的