Node.js 開發者 2020 年度報告

大家好,我是若川。歡迎加我微信 ruochuan12,長期交流學習。今天分享一篇Node.js報告,記得當時我還參與填寫這個調查問卷了,Node.js的重要性不言而喻。微信預計閱讀只需7分鐘。點擊下方卡片關注我,或者查看源碼系列文章。


本次調查以 Ecma 成員名義發起,阿里巴巴、騰訊等公司領銜。該調查事件從 2020 年 2 月至 2020 年 4 月,以中文進行。截止 4 月 10 日共有 1,113 名受訪者參加。

報告的高清圖表以及不同維度篩選交互,請點擊閱讀原文跳轉到 GitHub page 頁面查看。

受訪者

人物來源

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

他們的主要分布情況為:

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

職業簡歷

  • 典型的受訪者來自兩種公司,分別是百人左右的小型公司,以及 5k 人以上的大公司。

  • 他們通常是 7 人左右的團隊內的前端或者全棧工程師。

工作內容

應用場景

  • Node.js 的典型應用場景是網站開發。

  • 大公司內會有更多的人使用 Node.js 進行工具 & 自動化開發。

  • 中小公司會更樂意在移動應用中嘗試 Node.js。

  • 不少人 (35.01%) 學習 Node.js 是出于業余愛好,在小公司更加明顯。

開發場景

  • 整體而言有 87.50% 使用 Node.js 開發服務端 API,有 51.19% 的人開發 CLI & 工具。

  • 隨著使用年限增加將 Node.js 作為服務端 API 的比率略有下降 (5%) 而 BFF 的使用場景略有上漲 (4%)。

  • 越年輕的使用者越愿意在 SSR 場景中使用 Node.js。

多語言

  • 與 Node.js 開發最契合的是前端開發語言(JavaScript/HTML/CSS)。

  • 除了前端,整體上與 Node.js 最常見并存的語言分別是 Java(25.27%)、Python(22.24%) 和 Go(17.73%)。

開發流程

代碼轉譯

  • 隨著 Node.js 使用年限增加,不轉譯的比率大幅下降 (45% 到 25%)。

  • TypeScript 是最常用的轉譯語言。

代碼檢查

  • 整體上有 90% 的 Node.js 開發者使用過 ESLint。

  • 隨著團隊規模的增大 TSLint 的使用存在微小的增幅。

配置方式

  • 文件配置是最流行的配置方式。

  • 雖然配置中心使用概率不高,不過公司規模越大則配置中心的使用概率越高。

編輯器

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

進程管理

  • 公司越大使用 Docker 的比例越高。

  • 中型公司使用 PM2 的比例更高。

操作系統

技術棧

一個典型的 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 年,如果要學三個數據庫,那么請學習 MySQL (79%)、MongoDB (60%) 和 Redis (49%)。

反向代理

  • Noder 們對于反向代理的概念是約等于 Nginx 的。

  • 使用反向代理的基本都會使用 Nginx。

  • 越大的公司越傾向于使用反向代理。

RPC

  • HTTP 是最常見的 RPC 方式,此外使用最多的是消息隊列。

  • 中型公司使用消息隊列的比率最高。

  • 大公司使用自研 RPC 協議的比率最高。

消息隊列

常用的消息隊列(多選) 僅 18% 的同學填寫消息隊列(問卷星渠道不包括)

開發生態

Node 版本

  • 在 2020 年,開發者們普遍使用 12.x 或更高版本 13.x。

  • 除了 NPM, 最流行的管理工具主要是 yarn 以及 cnpm。

  • 僅有不到 6% 的開發者在使用非 LTS 版本的 Node.js。

依賴管理

  • NPM 影響力巨大,僅有不到 6% 的同學可以擺脫 NPM 只使用其他的依賴管理工具。

  • 除了 NPM, 最流行的管理工具主要是 yarn 以及 cnpm。

  • 隨著開發經驗的增加,開發者會更多的試圖尋找 NPM 以外的依賴管理工具。

NPM 鏡像

  • 使用鏡像加速的同學超過 57%,但是這對 NPM 的下載速度并沒有起到決定性的影響。

  • 通過比例分析可以發現,除了鏡像加速,下載速度越快的同學中公司部署私有 NPM 鏡像的比例越高。

學習提升

學習途徑

  • 老司機更多的從開源代碼 (Github & NPM) 來學習 Node.js。

  • 新同學相比之下會更多的通過學習視頻以及博客 & 期刊等渠道學習。

使用困惑

  • Node 開發者使用困惑的前三分別是性能優化 (58%)、內存泄漏 (42.4%) 以及 Debug (24.89%)。

  • 新人更容易面臨的困惑前三分別是 異步編程、事件驅動以及 Debug。

  • 隨著開發經驗的增加,內存泄漏的比例也逐步上升。

資源需求

  • 文檔是大家最期待的資源。

  • 新同學對視頻教程和免費在線課程的呼聲最高。

  • 隨著開發經驗的增加,開發更加關注文檔、大會活動以及線下沙龍。

未來關鍵字

  • Serverless 和多線程是 2020 年的 Noder 們最關注的新關鍵字。

  • 從業經驗越高則越關注 WebAssembly (WASI) 和 N-API。

  • 越年輕的同學越關注 Deno。

生態期望

  • Node.js 開發者中呼聲最高的需求是更好的性能以及開發效率。

  • 此外不滿 1 年的開發者更關心學習成本,年限越長越關心維護成本。

最后


同樣的數據在不同的人眼里可以衍生出不同的看法,本報告內的解讀僅供參考。同時歡迎社區同學對本報告進行解讀和分析。

如果發現有疏漏或者有你自己的想法/吐槽都可以在 GitHub (https://github.com/NoderSurvey/reporters) 上提 issue 反饋。同時報告的高清圖表以及不同維度篩選交互,請點擊閱讀原文跳轉到 GitHub page?頁面查看。


最近組建了一個江西人的前端交流群,如果你也是江西人可以加我微信 ruochuan12 拉你進群。



·················?若川出品?·················

今日話題

前不久新加的今日話題這個欄目,雖然可能很多人沒有看到這里,但我應該會堅持寫下去。今天在群里得知有位讀者朋友置頂了我的微信群而且星標了我的公眾號,深感欣慰。

一個愿景是幫助5年內前端人走向前列的公眾號

可加我個人微信 ruochuan12,長期交流學習

推薦閱讀

我在阿里招前端,我該怎么幫你?(現在還能加我進模擬面試群)

如何拿下阿里巴巴 P6 的前端 Offer

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276057.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276057.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276057.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[SPS2010] 使用心得 7 - ebook for Installation

[SPS2010] 使用心得 7 - ebook for Installation 一本有關Sharepoint 2010安裝的ebook (英語) http://sharepoint2007tips.com/Documents/Installing%20and%20Configuring%20SharePoint%202010.pdf 相當詳細,目前為止僅有的可以下載的。 posted on 2010-…

視覺設計_視覺設計:

視覺設計What does the customer first see in your application? Yes, its your application design. So it is very important to pay attention to how the design is made. There’s so many factors to include, like how usually people meaning a symbol, how their pr…

開源分布式中間件 DBLE 快速入門指南

2019獨角獸企業重金招聘Python工程師標準>>> 環境準備 DBLE項目資料 DBLE官方網站:https://opensource.actionsky.com 可以詳細了解DBLE的背景和應用場景,本文不涉及到的細節都可在官方文檔獲得更細節都信息;對于剛了解到同學&…

文字輸入限制_從拼音輸入法的興起看漢字文化圈的衰落

曾經韓國的報紙是這樣的:現在的則是這樣的:(上面兩圖均來自網絡,如有侵權請告知)二戰之后,曾經廣泛使用漢字的朝韓跟越南都走上了廢除漢字之路。日本雖然依然使用漢字,卻也發布了《當用漢字表》…

JS彈出窗口

轉載鏈接:http://www.jb51.net/article/32747.htm 如何利用網頁彈出各種形式的窗口,我想大家大多都是知道些的,但那種多種多樣的彈出式窗口是怎么搞出來的,我們今天就來學習一下: 1.彈啟一個全屏窗口 windows.open(…

跟各位讀者朋友分享下公眾號運營策略

大家好,我是若川。歡迎加我微信 ruochuan12,加群交流學習。目前我的公眾號運營策略,分享給各位讀者朋友。點擊下方卡片關注我,或者查看源碼等系列文章。可能大多數關注的人不知道,我的公眾號取名為若川視野的原因。「若…

[轉載]用PHP的ob_start();控制您的瀏覽器cache!

FROM http://www.phpchina.com/html/28/1628-3870.html Output Control 函數可以讓你自由控制腳本中數據的輸出。它非常地有用,特別是對于:當你想在數據已經輸出后,再輸出文件頭的情況。輸出控制函數不對使用 header() 或 setcookie(), 發送的…

oracle 帶有變量的語句_【成都校區】Oracle SQL語句之常見優化方法總結

本帖出自于黑馬程序員成都中心,更多資源可關注微信公眾號1、SQL語句盡量用大寫的;因為oracle總是先解析SQL語句,把小寫的字母轉換成大寫的再執行。2、使用表的別名: 當在SQL語句中連接多個表時, 盡量使用表的別名并把別名前綴于每…

js 獲取上下文后面的路徑_通過在數據后面顯示上下文來可視化公眾意見

js 獲取上下文后面的路徑In 1824, The Harrisburg Pennsylvanian, a newspaper from a town in Pennsylvania conducted the first known public opinion polls in history, and successfully predicted the result of the vote in the close race between Andrew Jackson and …

甘肅甘南步班郵遞員:草原上的“遞愛”艱途

圖為甘肅甘南藏族自治州碌曲縣郎木寺鎮郵政支局的投遞員進行投遞工作。(資料圖) 鐘欣 攝 中新網蘭州1月25日電 (吳玉蒿)漸近春節,劉權英投遞郵件的工作愈加繁重。現年45歲的劉權英是甘肅甘南藏族自治州碌曲縣郎木寺鎮郵政支局的一名投遞員。由…

核心編程6——線程

Note 0:了進程實際是由兩個組件組成的:一個進程內核對象和一個地址空間.類似地,線程也由兩個組件組成:一個是線程的內核對象,操作系統用它管理線程.內核對象還是系統用來存放線程統計信息的地方.一個線程堆棧,用于維護線程執行時所需的所有函數參數和局部變量.Note 1:進程是有惰…

PHP解決搶購、秒殺、搶樓、抽獎等阻塞式高并發庫存防控超量的思路方法

轉載鏈接:http://www.4u4v.net/thinking-approach-to-buy-spike-grab-floor-sweepstakes-and-other-high-concurrent-blocking-prevention-excess-inventory-solve-php.html 如今在電商行業里,秒殺搶購活動已經是商家常用促銷手段。但是庫存數量有限,而同…

看了就會的 Node.js 三大基礎模塊常用 API

大家好,我是若川。歡迎加我微信 ruochuan12,加群交流學習。今天分享一篇nodejs基礎的文章。點擊下方卡片關注我,或者查看源碼等系列文章。在日常使用 Node 進行開發的時候,會使用到一些文件系統、路徑操作等基礎 API,這…

vue-cli3插件初體驗

vue-cli3發布自2018年8月,距離現在還不是特別久,最好搭建項目剛好用到,所以寫下這篇文章,記錄一下踩坑經歷。vue的作者說過,vue-cli的本質是模版的拉取,太多的配置導致了模版的難以維護,所以重構…

ios設計登錄功能_親愛的產品設計師,這是iOS 14的新功能

ios設計登錄功能On June 22, 2020 Apple previewed iOS 14 for the first time. As always there are quite some changes you should know about as a product designer like widgets, pickers, app clips, permissions and more.2020年6月22日,Apple首次預覽iOS 1…

c++ int 轉 short_C/C++結構體內存對齊

在面試或工作中,經常會遇到內存對齊的問題。這里結合我的理解談一談對內存對齊的理解。1. 為什么要內存對齊,不對齊會怎么樣?內存中存放數據是為了給CPU使用,CPU訪問內存數據時會受到地址總線寬度的限制,也就是一次能從…

對于日訪問量達到1W IP的處理方法

轉自:http://www.java123.net/56026-2.html 對于日訪問量達到1W IP的處理方法 一、1萬ip真是不高: 1.常用數據用緩存,減輕數據庫壓力。 2.詳細頁數據生成靜態頁面。 二、10000算是相當小的了,不需要什么特殊的處理機制,只要符合最一般的…

數據契約(DataContract)

WCF第一要素就是契約: 服務契約用于聲明可用于遠程訪問的類型。在Interface或class開始處使用服務契約標簽. [ServiceContract] Public interface Iservice { } 接口調用契約的好處: 1. 同一服務類型可以實現多個不相干的服務契約. 2. 有利于版本升級 3. 按照…

jakob slam_Jakob Nielsen針對用戶界面設計的第二種可用性啟發法

jakob slamIn the pursuit of providing great user experiences, it’s imperative that digital products are evaluated. A 為了提供出色的用戶體驗,必須對數字產品進行評估。 一個 heuristic evaluation is essential to delivering great user experiences. I…

微軟Office 365正式上架Mac App Store

今天,Office 365正式在Mac App Store上架,Mac用戶可以輕松下載Word,Outlook,Excel,PowerPoint,OneNote以及整套微軟的熱門應用程序。用戶還可以從應用程序內訂購Office 365。蘋果全球開發者關系高級主管Sha…