2021 的 Node.js 開發人員路線圖
1. JavaScript
如果你是一名希望掌握一些后端技能的前端開發人員,那么在開始構建 Node.js 應用程序之前,將不必花費大量時間學習 JavaScript。但是,如果你是一個初學者,希望在盡可能短的時間內掌握 Node.js,那么在深入研究 Node.js 環境之前,必須學習以下概念。
-
箭頭函數
-
數據類型
-
表達式
-
函數
-
詞法
-
this
-
循環和作用域
-
數組
-
模版字符串
-
嚴格模式
-
ES6/ES7
在Node.js中,將面對大量的異步編程,為此,建議學習以下概念。
-
計時器
-
Promises
-
閉包
-
事件循環
-
異步函數
-
回調函數
2. NPM
Node Package Manager 擁有大量的軟件包,在我們開發需要大量依賴關系的應用程序時,使用 NPM 包管理程序將非常方便。
3. Node.js 基礎
-
Event Emitters
-
Callbacks
-
Buffers
-
Module System
4. 版本控制系統
Git,GitHub
5. HTTP / HTTPS協議
了解有關如何使用傳輸協議傳輸數據的基礎知識將使您成為更好的Node.js開發人員,對HTTP和HTTPS的工作原理有很好的了解。HTTPS使用稱為傳輸層安全性(TLS)的加密協議來加密通信。在后端環境中有很多東西要學習,如果您不了解網絡的工作原理,可能會有些困惑,有以下幾種請常見的求方法用于網絡上的基本通信:
-
GET:用于檢索資源的表示形式
-
POST:用于創建新資源
-
PUT:用于更新功能
-
PATCH:用于修改功能
-
DELETE:用于刪除URL標識的資源
-
OPTIONS:請求給定URL或服務器的允許的通信選項
6. WEB 框架
以下框架不需要全部精通,擇一學習即可。
-
Express.js
-
Meteor.js
-
Sails.js
-
Koa.js
-
Nest.js
7. 數據庫管理
關系型數據庫
-
SQL Server
-
MySQL
-
PostgreSQL
-
MariaDB
NoSQL數據庫
-
MongoDB
-
Redis
8. 全文檢索
ElasticSearch
一個基于Apache Lucene并使用Java開發的搜索和分析引擎。使用ElasticSearch,您可以實時存儲和分析大量數據。當它搜索索引而不是搜索文本時,ElasticSearch也實現了出色的搜索性能。它的核心是使用基于結構的文檔,而不是廣泛的REST API附帶的用于存儲和搜索數據的表和模式。您可以將ElasticSearch視為處理JSON請求并向您返回JSON數據的服務器。
Solr
它提供了相當高級的實時搜索功能,例如字段搜索,布爾查詢,階段查詢,模糊查詢,拼寫檢查,自動完成等等。
9. 緩存
Memory Cache
這種技術通常也稱為緩存,因為在大多數情況下,緩存與服務器中的內存相關聯。在這種技術中,服務器內存的一部分用作緩存,我們在其中存儲減少應用程序中的網絡調用所需的所有數據。在Node.js中,我們擁有node-cache 和 memory-cache作為一些出色的庫來處理nodejs服務器中的內存緩存。
Distributed Cache
在這種緩存技術中,我們將多個網絡的內存合并到一個內存數據存儲中,之后將其用作最終數據緩存以證明對數據的快速訪問。此技術尤其適用于大量數據,并且通過向群集添加更多服務器內存,大量的網絡調用同時允許增量擴展和擴展。關于分布式緩存,Redis是最著名的事情之一。
10. 模板引擎
使用模板引擎,我們可以在應用程序中使用靜態模板文件,而在運行時,該模板引擎將模板文件中的變量替換為實際值,然后將模板轉換為發送給客戶端的HTML文件。下面列出了一些流行的模板引擎。
-
Mustache.js
-
Handlebars
-
EJS
11. 實時通訊
如果您只是作為后端開發人員起步,那么在了解Socket.IO中的實時通信方面有很多事情,實時通信背后的主要邏輯就在于客戶端和服務器之間。它允許流動雙向客戶端與服務器之間的數據,你能想到的雙向數據流的數據的兩個終端之間的同步流程,實現實時通訊的行為,這類行為被啟用時,客戶端在瀏覽器中具有Socket.IO以及與Socket.IO軟件包集成的服務器。并且數據可以以JSON請求的形式發送。
12. API Clients
-
REST
-
GraphQL
13. 測試
單元測試框架
在單元測試中,我們隔離地測試各個單元/組件,其中單元可以是應用程序中代碼中可測試的最小部分。在Node.js中,下面列出了幾種常見的單元測試框架:
-
Jest
-
Mocha
-
Chai