Node.js 开发者 2020 年度报告
大家好,我是若川。歡迎加我微信 ruochuan12,長(zhǎng)期交流學(xué)習(xí)。今天分享一篇Node.js報(bào)告,記得當(dāng)時(shí)我還參與填寫(xiě)這個(gè)調(diào)查問(wèn)卷了,Node.js的重要性不言而喻。微信預(yù)計(jì)閱讀只需7分鐘。點(diǎn)擊下方卡片關(guān)注我,或者查看源碼系列文章。
本次調(diào)查以 Ecma 成員名義發(fā)起,阿里巴巴、騰訊等公司領(lǐng)銜。該調(diào)查事件從 2020 年 2 月至 2020 年 4 月,以中文進(jìn)行。截止 4 月 10 日共有 1,113 名受訪者參加。
報(bào)告的高清圖表以及不同維度篩選交互,請(qǐng)點(diǎn)擊閱讀原文跳轉(zhuǎn)到 GitHub page 頁(yè)面查看。
受訪者
人物來(lái)源
本次調(diào)查問(wèn)卷中,填寫(xiě)問(wèn)卷的 Node.js 開(kāi)發(fā)者主要年齡分布如下:
他們的主要分布情況為:
其中以城市角度看,人數(shù)分布主要是:
職業(yè)簡(jiǎn)歷
典型的受訪者來(lái)自兩種公司,分別是百人左右的小型公司,以及 5k 人以上的大公司。
他們通常是 7 人左右的團(tuán)隊(duì)內(nèi)的前端或者全棧工程師。
工作內(nèi)容
應(yīng)用場(chǎng)景
Node.js 的典型應(yīng)用場(chǎng)景是網(wǎng)站開(kāi)發(fā)。
大公司內(nèi)會(huì)有更多的人使用 Node.js 進(jìn)行工具 & 自動(dòng)化開(kāi)發(fā)。
中小公司會(huì)更樂(lè)意在移動(dòng)應(yīng)用中嘗試 Node.js。
不少人 (35.01%) 學(xué)習(xí) Node.js 是出于業(yè)余愛(ài)好,在小公司更加明顯。
開(kāi)發(fā)場(chǎng)景
整體而言有 87.50% 使用 Node.js 開(kāi)發(fā)服務(wù)端 API,有 51.19% 的人開(kāi)發(fā) CLI & 工具。
隨著使用年限增加將 Node.js 作為服務(wù)端 API 的比率略有下降 (5%) 而 BFF 的使用場(chǎng)景略有上漲 (4%)。
越年輕的使用者越愿意在 SSR 場(chǎng)景中使用 Node.js。
多語(yǔ)言
與 Node.js 開(kāi)發(fā)最契合的是前端開(kāi)發(fā)語(yǔ)言(JavaScript/HTML/CSS)。
除了前端,整體上與 Node.js 最常見(jiàn)并存的語(yǔ)言分別是 Java(25.27%)、Python(22.24%) 和 Go(17.73%)。
開(kāi)發(fā)流程
代碼轉(zhuǎn)譯
隨著 Node.js 使用年限增加,不轉(zhuǎn)譯的比率大幅下降 (45% 到 25%)。
TypeScript 是最常用的轉(zhuǎn)譯語(yǔ)言。
代碼檢查
整體上有 90% 的 Node.js 開(kāi)發(fā)者使用過(guò) ESLint。
隨著團(tuán)隊(duì)規(guī)模的增大 TSLint 的使用存在微小的增幅。
配置方式
文件配置是最流行的配置方式。
雖然配置中心使用概率不高,不過(guò)公司規(guī)模越大則配置中心的使用概率越高。
編輯器
VS Code 一騎絕塵,是 Node.js 開(kāi)發(fā)者最喜愛(ài)開(kāi)發(fā)工具
進(jìn)程管理
公司越大使用 Docker 的比例越高。
中型公司使用 PM2 的比例更高。
操作系統(tǒng)
技術(shù)棧
一個(gè)典型的 Node.js Web 應(yīng)用:
使用 Express/Koa 框架
使用 Mysql/MongoDB + Redis 數(shù)據(jù)
同時(shí)配置了 Nginx 作為反向代理
Web 框架
雖然感受上 Koa.js 的教程更多,但是實(shí)際上 Express.js 依舊是最常見(jiàn)的框架。
除了 Koa/Express 之外較流行的 Web 框架分別有 Egg.js (38%)、Nest.js (15%)、Next.js (7%) 和 Midway.js (6%)。
數(shù)據(jù)庫(kù)
在 2020 年,如果要學(xué)三個(gè)數(shù)據(jù)庫(kù),那么請(qǐng)學(xué)習(xí) MySQL (79%)、MongoDB (60%) 和 Redis (49%)。
反向代理
Noder 們對(duì)于反向代理的概念是約等于 Nginx 的。
使用反向代理的基本都會(huì)使用 Nginx。
越大的公司越傾向于使用反向代理。
RPC
HTTP 是最常見(jiàn)的 RPC 方式,此外使用最多的是消息隊(duì)列。
中型公司使用消息隊(duì)列的比率最高。
大公司使用自研 RPC 協(xié)議的比率最高。
消息隊(duì)列
常用的消息隊(duì)列(多選) 僅 18% 的同學(xué)填寫(xiě)消息隊(duì)列(問(wèn)卷星渠道不包括)
開(kāi)發(fā)生態(tài)
Node 版本
在 2020 年,開(kāi)發(fā)者們普遍使用 12.x 或更高版本 13.x。
除了 NPM, 最流行的管理工具主要是 yarn 以及 cnpm。
僅有不到 6% 的開(kāi)發(fā)者在使用非 LTS 版本的 Node.js。
依賴管理
NPM 影響力巨大,僅有不到 6% 的同學(xué)可以擺脫 NPM 只使用其他的依賴管理工具。
除了 NPM, 最流行的管理工具主要是 yarn 以及 cnpm。
隨著開(kāi)發(fā)經(jīng)驗(yàn)的增加,開(kāi)發(fā)者會(huì)更多的試圖尋找 NPM 以外的依賴管理工具。
NPM 鏡像
使用鏡像加速的同學(xué)超過(guò) 57%,但是這對(duì) NPM 的下載速度并沒(méi)有起到?jīng)Q定性的影響。
通過(guò)比例分析可以發(fā)現(xiàn),除了鏡像加速,下載速度越快的同學(xué)中公司部署私有 NPM 鏡像的比例越高。
學(xué)習(xí)提升
學(xué)習(xí)途徑
老司機(jī)更多的從開(kāi)源代碼 (Github & NPM) 來(lái)學(xué)習(xí) Node.js。
新同學(xué)相比之下會(huì)更多的通過(guò)學(xué)習(xí)視頻以及博客 & 期刊等渠道學(xué)習(xí)。
使用困惑
Node 開(kāi)發(fā)者使用困惑的前三分別是性能優(yōu)化 (58%)、內(nèi)存泄漏 (42.4%) 以及 Debug (24.89%)。
新人更容易面臨的困惑前三分別是 異步編程、事件驅(qū)動(dòng)以及 Debug。
隨著開(kāi)發(fā)經(jīng)驗(yàn)的增加,內(nèi)存泄漏的比例也逐步上升。
資源需求
文檔是大家最期待的資源。
新同學(xué)對(duì)視頻教程和免費(fèi)在線課程的呼聲最高。
隨著開(kāi)發(fā)經(jīng)驗(yàn)的增加,開(kāi)發(fā)更加關(guān)注文檔、大會(huì)活動(dòng)以及線下沙龍。
未來(lái)關(guān)鍵字
Serverless 和多線程是 2020 年的 Noder 們最關(guān)注的新關(guān)鍵字。
從業(yè)經(jīng)驗(yàn)越高則越關(guān)注 WebAssembly (WASI) 和 N-API。
越年輕的同學(xué)越關(guān)注 Deno。
生態(tài)期望
Node.js 開(kāi)發(fā)者中呼聲最高的需求是更好的性能以及開(kāi)發(fā)效率。
此外不滿 1 年的開(kāi)發(fā)者更關(guān)心學(xué)習(xí)成本,年限越長(zhǎng)越關(guān)心維護(hù)成本。
最后
同樣的數(shù)據(jù)在不同的人眼里可以衍生出不同的看法,本報(bào)告內(nèi)的解讀僅供參考。同時(shí)歡迎社區(qū)同學(xué)對(duì)本報(bào)告進(jìn)行解讀和分析。
如果發(fā)現(xiàn)有疏漏或者有你自己的想法/吐槽都可以在 GitHub (https://github.com/NoderSurvey/reporters) 上提 issue 反饋。同時(shí)報(bào)告的高清圖表以及不同維度篩選交互,請(qǐng)點(diǎn)擊閱讀原文跳轉(zhuǎn)到 GitHub page?頁(yè)面查看。
最近組建了一個(gè)江西人的前端交流群,如果你也是江西人可以加我微信 ruochuan12 拉你進(jìn)群。
·················?若川出品?·················
今日話題
前不久新加的今日話題這個(gè)欄目,雖然可能很多人沒(méi)有看到這里,但我應(yīng)該會(huì)堅(jiān)持寫(xiě)下去。今天在群里得知有位讀者朋友置頂了我的微信群而且星標(biāo)了我的公眾號(hào),深感欣慰。
一個(gè)愿景是幫助5年內(nèi)前端人走向前列的公眾號(hào)
可加我個(gè)人微信 ruochuan12,長(zhǎng)期交流學(xué)習(xí)
推薦閱讀
我在阿里招前端,我該怎么幫你?(現(xiàn)在還能加我進(jìn)模擬面試群)
如何拿下阿里巴巴 P6 的前端 Offer
總結(jié)
以上是生活随笔為你收集整理的Node.js 开发者 2020 年度报告的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: tuxedo 中间件命令
- 下一篇: 想了解能源互联网?看这篇就够了