|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Node.js
什麼是 Node.js?
Node.js 是一個跨平台、開源執行時間環境和框架,用於在客戶端瀏覽器之外執行 Web 應用程式。
它是一種伺服器端程式語言,主要用於事件驅動的伺服器,例如標準網站和後端 API 服務,儘管創建它的目的是開發即時的、基於推送的架構。每個瀏覽器都有自己的 JS 引擎,node.js 就是其中之一。 Google Chrome 中的 V8 JavaScript 引擎用於支援 Node.js 。是不是有點複雜?
從根本上來說,這意味著整個網站可以在單一「堆疊」上運行,使您能夠專注於實現專案的業務目標,而不是開發和維護。
由於 Node.js 是開源的,因此可以免費使用,並且由全球開發者社群不斷更新和增強。
關於 Node.js 需要掌握的一個關鍵點是,它實際上既不是傳統應用程式軟體的框架也不是函式庫,而是執行時環境。
執行時間環境(也稱為 RTE)是開發人員可用於建立程式碼的 Web API 以及解析該程式碼的 JavaScript 引擎的集合。這使得它變得輕巧、多功能且易於部署,所有這些都將有助於優化和加速您的應用程式專案。
Node.js 基本架構
Node.js 的架構使其在程式設計師中非常受歡迎。與大多數其他使用多執行緒處理模型的執行環境不同,Node.js 在單一執行緒中完成所有操作。
在多執行緒處理配置中,每個伺服器都有一個可以存取的受限執行緒池。因此,每當伺服器收到請求時,它都會從池中選擇一個執行緒並將其指派給該請求來處理處理。在此場景中,處理是同步且順序的,這意味著一次僅執行一個操作。
使用多線程處理時,將為每個請求選擇一個線程,直到所有線程都用完為止。發生這種情況時,伺服器必須等待現在太忙而無法再次可用的執行緒。這可能會導致應用程式運作緩慢且效率低下,從而產生從客戶體驗到潛在客戶轉換等一系列負面後果。如果您的程式必須處理大量並發客戶端請求,那麼問題尤其嚴重。
另一方面,Node.js 在單線程上工作。兩者之間的差異在於,您可能會期望單執行緒體系結構使用事件循環以非阻塞方式執行阻塞輸入/輸出活動。如果您不熟悉這些短語,請不要擔心。
原則上,單執行緒設計可以比多執行緒配置更快、更有效地運行和成長。這正是 Ryan Dahl 在創建 Node.js 時所考慮的,也是它在 Web 應用程式開發人員中如此受歡迎的原因之一。
使用 Node.js 開發的應用程式範例
這裡有一些更深入的案例研究,可以幫助您了解該技術的實際應用和商業應用。
Netflix
Netflix 是世界上最受歡迎的串流媒體和隨選視訊服務。它是一個數據驅動的平台,採用廣泛的 A/B 測試為其超過 1.95 億全球訂閱者提供豐富的體驗。
每個推送週期發布的大量獨特套件加劇了條件依賴和應用程式可擴展性的困難。因此,該公司選擇了輕量級且快速的 Node.js。最顯著的成果之一是載入時間減少了 70%。
領英
當將行動應用程式後端從 Ruby on Rails 遷移到 Node.js 時,全球最大的商業和就業社交網站 LinkedIn 也信任 Node.js。
儘管當時它還是一個相當不成熟的運作環境,但事實證明這是一個明智的決定。新的應用程式比以前的應用程式快 2-10 倍,而且也很輕。此外,開發時間很短。
美國太空總署
是的,這是正確的。 NASA 也使用 Node.js。
該技術在該應用中比在其他應用中重要得多,因為它可以在危險的太空任務中確保太空人的安全,從而挽救生命。
在因多個位置儲存的資料效率低下而導致幾乎致命的事故之後,NASA 面臨著將與 EVA 太空衣相關的資料整合到單一雲端資料庫中以最大限度地減少存取時間的任務。基於 Node.js 的新系統將流程中的步驟從 28 個減少到 7 個。
沃爾瑪
沃爾瑪是世界上最大的零售商,它正在進入網路購物業務。儘管存在風險,該公司還是加入了使用 Node.js 的行列,這是一種相對較新且非常熱門的技術。
在客戶端,企業重新設計了行動應用程式以包含複雜的功能。沃爾瑪稱讚 Node.js 的非同步 I/O 和單執行緒事件循環架構,這使其能夠管理多個並發查詢。
可信任執行環境 (TEE)
可信任執行環境 (TEE) 是主處理器內的安全區域,提供受保護的空間,敏感程式碼和資料可以在其中運行,而不必擔心外界的篡改或觀察。 |
人類鑰匙
人類金鑰是從您的身分、您的知識或您擁有的東西衍生出來的加密金鑰。它們用於保護數位資產、保護隱私和訪問去中心化網路。 |
開放金融(OpenFi)
OpenFi是「開放金融」的縮寫,是一個將傳統金融(TradFi)與去中心化金融(DeFi)結合的金融框架。 |
匯總即服務 (RaaS)
匯總即服務 (RaaS) 允許建構者快速建立和啟動自己的匯總。 RaaS 供應商提供端對端解決方案,例如底層技術堆疊的客製化、無程式碼管理以及與核心基礎架構的一鍵客製化整合。 |
數據可用性採樣 (DAS)
資料可用性採樣(DAS)是一種使去中心化應用程式能夠驗證區塊資料的可用性的方法,而不需要每個參與者下載整個資料集。 |
多種數據可用性 (MultiDA)
這個區塊鏈架構使用多個資料可用性(DA)服務來確保資料冗餘。 |