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