《Node.js 開發者 2021 報告》釋出

2022-01-13 09:00:14

《》已於近日釋出。據介紹,負責這份報告的調查組織以  成員的名義發起。組織的成員來自多個機構,包括 Ecma、TC39、Node.js 基金會等。同時也包含一系列來自阿里巴巴和騰訊的合作公司。不過組織本身與 Ecma 沒有歸屬關係,僅作為獨立運營的組織存在。

這份調查報告旨在幫助大家更好地瞭解 Node.js 生態現狀:

  • 大家都是如何使用 Node.js
  • 梳理 Node.js 技術棧
  • 聚焦前端/Node.js 開發者都在關注什麼
  • 幫助開發者找準 Node.js 的定位(用來幹什麼的)
  • 找到目前 Node.js 生態所缺乏的以及被期望的內容

受訪開發者年齡分佈

本次調查問卷中,填寫問卷的 Node.js 開發者主要年齡分佈如下:

受訪開發者職業情況

  • 典型的受訪者來自兩種公司,分別是百人左右的中小型公司,以及 5k 人以上的大公司。
  • 他們通常是 7 人左右的團隊內的前端或者全棧工程師。
  • 相比去年,今年的後端工程師比率有較高提升(約 10%)。

工作內容

應用場景

  • 開發者使用 Node.js 一般用於 to B 業務。
  • 大公司內會有更多的人使用 Node.js 開發內部執行系統 & 自動化工具。

開發場景

  • 2021 年整體而言有 81% (6%↓) 的開發者使用 Node.js 開發 Web API,有 41% (10%↓) 的人開發 CLI & 工具。
  • 隨著使用年限增加將 Node.js 作為伺服器端 API 的比率逐級下降而開發微服務 (7%↑) 和 CLI & 工具 (4%↑) 的場景逐漸增長。
  • 1~3 年經驗的開發者更願意在 SSR 場景中使用 Node.js。

開發流程

程式碼轉譯

  • 去年 0~1 年的開發者有 45% 不轉譯,今年大部分開發者都會轉譯。
  • TypeScript 是最常用的轉譯語言。

程式碼檢查

  • 整體上有 88% 的 Node.js 開發者使用 ESLint。
  • 8-20 人規模的團隊 TSLint 的使用率最高。

設定方式

  • 檔案設定是最流行的設定方式。
  • 雖然設定中心使用概率不高,不過公司規模越大則設定中心的使用概率越高。

編輯器

  • VS Code 一騎絕塵,是 Node.js 開發者最喜愛開發工具

程序管理

  • K8s & Docker 已經十分流行了。
  • 中型公司使用 PM2 的比例更高。
  • 規模越小越樂於嘗試 Serverless 的部署方式。

部署方式

技術棧

一個典型的 Node.js Web 應用:

  • 使用 Express/Koa 框架
  • 使用 Mysql/MongoDB + Redis 資料
  • 同時設定了 Nginx 作為反向代理

Web 框架

  • Koa.js 與 Express.js 並列為最常見的框架。
  • 此外較流行的 Web 框架分別有 Egg.js (44% 6%↑)、Nest.js (21% 6%↑)、Midway.js (17% 10%↑) 和 Next.js (7% 0.3↓)。

資料庫

  • 相比去年的 TOP 3 資料庫: MySQL (79%)、MongoDB (60%) 和 Redis (49%),今年的 Redis 反超了 MongoDB,看來大量的 Noder 已經意識到快取的重要。
  • 如果想要使其他替代 MySQL 的關聯資料庫的話,可以學習 PostgreSQL。

反向代理

  • Noder 們對於反向代理的概念是約等於 Nginx 的。
  • 越大的公司越傾向於使用雲中介軟體。

RPC

  • HTTP 是最常見的 RPC 方式,此外使用最多的是訊息佇列。
  • 中型公司使用訊息佇列的比率最高。
  • 大公司使用自研 RPC 協定的比率最高。

開發生態

Node 版本

  • 在 2021 年,開發者們普遍使用 14.x 或 12.x。
  • 除了 NPM, 最流行的管理工具主要是 yarn 以及 cnpm。
  • 約 60% 的開發者在使用 LTS 版本(或以上)的 Node.js。

依賴管理

  • 老司機更喜歡 cnpm, 年輕人中 yarn 更流行。
  • 隨著開發經驗的增加,開發者會更多的試圖尋找 NPM 以外的依賴管理工具。

NPM 映象

  • 接近 80% 的開發者會通過公司部署私有映象或自行設定來加速 npm 依賴下載
  • 公司規模越大自行部署私有映象的概率越高

學習提升

學習途徑

  • 老司機更多的從開原始碼 (Github & NPM) 來學習 Node.js。
  • 新同學相比之下會更多的通過學習視訊以及部落格 & 期刊等渠道學習。
  • 相比去年,網上的資料變多了通過購買書籍來學習 Node.js 的下降了 13.5%。

使用困惑

  • 今年使用困惑的 Top 3 分別是效能優化 (57% 0.6%↓)、記憶體漏失 (43% 1%↑) 以及 node_modules 依賴(25% 3%↑)。
  • 新人更容易面臨的困惑 Top 3 分別是: 非同步程式設計、事件驅動以及 Debug。
  • 隨著開發經驗的增加,記憶體漏失的比例也逐步上升。

資源需求

  • 檔案是大家最期待的資源。
  • 新同學對視訊教學和免費線上課程的呼聲最高。
  • 隨著開發經驗的增加,更加關注大會活動以及沙龍。

未來關鍵字

  • 從業經驗越高則越關注 WebAssembly (WASI) 和 N-API。
  • 越年輕的同學越關注 Serverless。

生態期望

  • 相比去年,今年的 Noder 開始更多的關係維護成本 & 生態繁榮(更多人蔘與)。
  • 不滿 1 年的開發者更關心學習成本,年限越長越關心維護成本。

知名 Node.js 專家狼叔 & 冰森針對《Node.js 開發者 2021 報告》進行了詳細解讀,。

附:

展開閱讀全文