天天看點

2020 年 Node.js 開發者調查報告

作者:冰森

2020 年 Node.js 開發者調查報告

導讀:本次調查由阿裡巴巴、騰訊等公司領銜,調查時間從 2020 年 2 月至 4 月,以中文進行。截止至 4 月 10 日共有 1113 名受訪者參加調研。本報告将從 Nodejs 開發者人群、應用場景、開發場景等多個次元分析當下 Nodejs 開發生态的現狀。

更好的閱讀體驗:更高清的資料圖表和互動體驗可以點選閱讀原文跳轉至相關 GitHub 頁面檢視。

受訪者

人物來源

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

2020 年 Node.js 開發者調查報告

他們的主要分布情況為:

2020 年 Node.js 開發者調查報告

其中以城市角度看,人數分布主要是:

2020 年 Node.js 開發者調查報告

職業履歷

  • 典型的受訪者來自兩種公司,分别是百人左右的小型公司,以及 5k 人以上的大公司。
  • 他們通常是 7 人左右的團隊内的前端或者全棧工程師。
2020 年 Node.js 開發者調查報告

工作内容

應用場景

  • Node.js 的典型應用場景是網站開發。
  • 大公司内會有更多的人使用 Node.js 進行工具 & 自動化開發。
  • 中小公司會更樂意在移動應用中嘗試 Node.js。
  • 不少人 (35.01%) 學習 Node.js 是出于業餘愛好,在小公司更加明顯。
2020 年 Node.js 開發者調查報告

開發場景

  • 整體而言有 87.50% 使用 Node.js 開發服務端 API,有 51.19% 的人開發 CLI & 工具。
  • 随着使用年限增加将 Node.js 作為服務端 API 的比率略有下降 (5%) 而 BFF 的使用場景略有上漲 (4%)。
  • 越年輕的使用者越願意在 SSR 場景中使用 Node.js。
2020 年 Node.js 開發者調查報告

多語言

  • 與 Node.js 開發最契合的是前端開發語言(JavaScript/HTML/CSS)。
  • 除了前端,整體上與 Node.js 最常見并存的語言分别是 Java(25.27%)、Python(22.24%) 和 Go(17.73%)。
2020 年 Node.js 開發者調查報告

開發流程

代碼轉譯

  • 随着 Node.js 使用年限增加,不轉譯的比率大幅下降 (45% 到 25%)。
  • TypeScript 是最常用的轉譯語言。
2020 年 Node.js 開發者調查報告

代碼檢查

  • 整體上有 90% 的 Node.js 開發者使用過 ESLint。
  • 随着團隊規模的增大 TSLint 的使用存在微小的增幅。
2020 年 Node.js 開發者調查報告

配置方式

  • 檔案配置是最流行的配置方式。
  • 雖然配置中心使用機率不高,不過公司規模越大則配置中心的使用機率越高。
2020 年 Node.js 開發者調查報告

編輯器

  • VS Code 一騎絕塵,是 Node.js 開發者最喜愛開發工具
2020 年 Node.js 開發者調查報告

程序管理

  • 公司越大使用 Docker 的比例越高。
  • 中型公司使用 PM2 的比例更高。
2020 年 Node.js 開發者調查報告

作業系統

2020 年 Node.js 開發者調查報告

技術棧

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

  • 使用 Express/Koa 架構
  • 使用 Mysql/MongoDB + Redis 資料
  • 同時配置了 Nginx 作為反向代理

Web 架構

  • 雖然感受上 Koa.js 的教程更多,但是實際上 Express.js 依舊是最常見的架構。
  • 除了 Koa/Express 之外較流行的 Web 架構分别有 Egg.js (38%)、Nest.js (15%)、Next.js (7%) 和 Midway.js (6%)。
2020 年 Node.js 開發者調查報告

資料庫

在 2020 年,如果要學三個資料庫,那麼請學習 MySQL (79%)、MongoDB (60%) 和 Redis (49%)。

2020 年 Node.js 開發者調查報告

反向代理

  • Noder 們對于反向代理的概念是約等于 Nginx 的。
  • 使用反向代理的基本都會使用 Nginx。
  • 越大的公司越傾向于使用反向代理。
2020 年 Node.js 開發者調查報告

RPC

  • HTTP 是最常見的 RPC 方式,此外使用最多的是消息隊列。
  • 中型公司使用消息隊列的比率最高。
  • 大公司使用自研 RPC 協定的比率最高。
2020 年 Node.js 開發者調查報告

消息隊列

  • 常用的消息隊列(多選) 僅 18% 的同學填寫消息隊列(問卷星管道不包括)
2020 年 Node.js 開發者調查報告

開發生态

Node 版本

  • 在 2020 年,開發者們普遍使用 12.x 或更高版本 13.x。
  • 除了 NPM, 最流行的管理工具主要是 yarn 以及 cnpm。
  • 僅有不到 6% 的開發者在使用非 LTS 版本的 Node.js。
2020 年 Node.js 開發者調查報告

依賴管理

  • NPM 影響力巨大,僅有不到 6% 的同學可以擺脫 NPM 隻使用其他的依賴管理工具。
  • 随着開發經驗的增加,開發者會更多的試圖尋找 NPM 以外的依賴管理工具。
2020 年 Node.js 開發者調查報告

NPM 鏡像

  • 使用鏡像加速的同學超過 57%,但是這對 NPM 的下載下傳速度并沒有起到決定性的影響。
  • 通過比例分析可以發現,除了鏡像加速,下載下傳速度越快的同學中公司部署私有 NPM 鏡像的比例越高。
2020 年 Node.js 開發者調查報告

學習提升

學習途徑

  • 老司機更多的從開源代碼 (Github & NPM) 來學習 Node.js。
  • 新同學相比之下會更多的通過學習視訊以及部落格 & 期刊等管道學習。
2020 年 Node.js 開發者調查報告

使用困惑

  • Node 開發者使用困惑的前三分别是性能優化 (58%)、記憶體洩漏 (42.4%) 以及 Debug (24.89%)。
  • 新人更容易面臨的困惑前三分别是 異步程式設計、事件驅動以及 Debug。
  • 随着開發經驗的增加,記憶體洩漏的比例也逐漸上升。
2020 年 Node.js 開發者調查報告

資源需求

  • 文檔是大家最期待的資源。
  • 新同學對視訊教程和免費線上課程的呼聲最高。
  • 随着開發經驗的增加,開發更加關注文檔、大會活動以及線下沙龍。
2020 年 Node.js 開發者調查報告

未來關鍵字

  • Serverless 和多線程是 2020 年的 Noder 們最關注的新關鍵字。
  • 從業經驗越高則越關注 WebAssembly (WASI) 和 N-API。
  • 越年輕的同學越關注 Deno。
2020 年 Node.js 開發者調查報告

生态期望

  • Node.js 開發者中呼聲最高的需求是更好的性能以及開發效率。
  • 此外不滿 1 年的開發者更關心學習成本,年限越長越關心維護成本。
2020 年 Node.js 開發者調查報告

最後

同樣的資料在不同的人眼裡可以衍生出不同的看法,本報告内的解讀僅供參考。同時歡迎社群同學對本報告進行解讀和分析。

如果發現有疏漏或者有你自己的想法/吐槽都可以在

GitHub

上提 issue 回報。

原文連結
2020 年 Node.js 開發者調查報告

關注「Alibaba F2E」

把握阿裡巴巴前端新動向

繼續閱讀