作者丨P. Rehan
編譯丨諾亞
“Node.js有危險了!”
“任何能夠自救的開發人員都應該盡快遷移到另一個后端環境!”JAVAScript的仇恨者說。
不用理會這些言論。Node.js將繼續存在,并將成為后端Web開發的終極游戲規則改變者。
一、是什么讓 Node.js 成為后端開發的寵兒?
在過去的后端開發時代,php是構建Web項目的主要工具。
但隨著歲月流逝,在Web開發中PHP逐漸變得不那么合時宜,就像古怪又神經質的大叔,沒有人知道它為什么還存在了。之后Ruby(基于RAIls)出現了,帶著一籮筐的顛覆性的花哨技術,就像喝拿鐵咖啡的潮人一樣。我們都有過這樣的“親戚”,(可惜的是)我們并不想和他們在一起。Java就更不用提了。
直到幾年前,一種新的、不那么時髦但卻非常高效的東西進入了后端開發的世界,那就是——Node.js。
簡單來說,Node.js是一個開源的跨平臺JavaScript運行時環境,它讓JavaScript成為與PHP、Python/ target=_blank class=infotextkey>Python、Perl、Ruby等服務端語言平起平坐的腳本語言。值得注意的是,Node.js在2017年改變了世界,這一年它得到了廣泛的使用。
Node.js的歷史是在打破Github上的4萬星標記之前創建的。它只是在Web瀏覽器之外運行代碼的小型JavaScript環境之一。但是,事實證明,Node.js正是后端開發界多年來一直在尋找的:一個能夠處理大量流量的勢不可擋的迷人環境。
以下功能使Node.js成為后端Web開發的典型代表:
其占用空間小,使其成為基于云的應用程序的出色開發工具。 由于它的V8 JavaScript引擎,它幾乎和光一樣快。 應用程序開發具有很強的可擴展性和響應性。 它的社區中有近10萬名活躍的開發人員。 它擁有無窮無盡的 API 和無限的生態系統,允許你創建從基本的 1-2-3 應用程序到火箭科學級微服務結構的所有內容。二、奧秘是什么?
試想:一個后端開發環境如何在保持健壯性和響應能力的同時管理如此多的查詢?流經其血管的秘密成分是什么?
Node.js除了使用與google Chrome相同的引擎外,還采用事件驅動的非阻塞I/O方法。
正是它推動?.NETflix(流媒體服務)、Discord機器人(聊天機器人)和8 Ball Pool(在線游戲)等實時應用程序的發展。
將事件驅動的非阻塞 I/O 模型想象成一個超級英雄,你將其命名為 Node-Man。
他的獨特能力是處理多項任務并毫不費力地救人。他的能力來自 I/O 模型,該模型可以處理多個請求,而無需等待一個請求完成后再進行下一個請求。
這就是節點人超越閃電俠并擊敗鋼鐵俠的方式。
三、被誤解的Node.js:五個必須了解的真相
以下是關于 Node.js 的五個常見誤解:
1. Node.js 不是大型商業應用程序的最佳選擇,因為它缺乏可擴展性。上次我們看到,每個組織都在嘗試將其應用程序提升到新的性能高度,而Node.js將提供這一點。
2. PayPal,沃爾瑪,Trello、領英,以及Netflix,都聲稱它僅適用于小型應用程序。它們是一些最復雜的應用程序,使用 Node.js 來處理請求,并且運行時幾乎沒有停機時間。
3. 它僅用于Web開發。事實上,Node.js 非常適合桌面應用程序、物聯網設備和命令行工具。Slack和Visual Studio Code都是Electron-Node.js強大組合的產品。Gatsby和Yarn是命令行工具,用于創建在Node.js上運行的快速和安全的網站。
4. CPU 密集型任務會破壞 Node.js。當然,這是一個單線程環境,性能會受到請求數量的影響。但是,你可以通過創建任務隊列或生成特定于任務的異步子進程來解決此限制。
5. Node.js 允許在最值得信賴的庫上運行時進行輸入驗證和清理,因此它不是一個很好的安全替代方案。Node.js 支持 TLS/SSL 通信。它對通信進行加密,并保護它免受漏洞和攻擊。
四、影響后端開發未來的Node.js 趨勢
除了可擴展性和閃電般的效率之外,Node.js最大的優勢是其簡單的學習曲線。這就像在掌握節點后玩連接節點的游戲。
由于這些特性,GraphQL、無服務器計算、微服務架構和漸進式Web應用程序(PWA)等Web開發概念正變得越來越流行。
小型、獨立的服務時代即將到來,每個服務都是業務功能所獨有的,通過 API 進行交互,并從單個共享代碼庫運行。
模塊化和可擴展的Web應用程序開發時代即將開啟。
五、一年后Node.js會在哪里?
自2009年發布以來,Node.js已經走了很長一段路,但對于這個JavaScript跨平臺來說,最令人興奮的旅程還沒有到來。
可以展望的是,Node.js最終將揚帆遠航,逃離后端開發的水域。它將跟蹤機器學習、人工智能、物聯網設備和桌面應用程序的發展,探索其中的未知領域。
如果認為這些領域不受其他語言和庫的影響,那將是愚蠢的。
GO、Deno、ASP.net和Flask等后端框架/語言對Node.js的采用和生存構成了威脅。
即使存在風險,未來也是光明和繁榮的,就像 Node.js API 庫一樣。
參考鏈接:https://pinjarirehan.medium.com/why-node-js-is-the-ultimate-game-changer-for-backend-development-26415839bbe2