Node.js開發者們都在做什么?

譯者:楊小福
鏈接:http://www.zcfy.cc/article/1304
原文:https://blog.risingstack.com/node-js-developer-survey-results-2016/

Node.js開發者們都在做什么?

RisingStack,Node基金會成員, Trace(下一代Node.js調試和監控工具) 的作者在2016年夏天主導了一項關于Node.js的開發者們傾向于哪方面的技術的調查。本文即這次的調查統計結果。

調查結果顯示 MongoDB, RabbitMQ, AWS, Jenkins, Docker 和亞馬遜托管服務成為開發者們的首選。

本次的調查結果頁讓我們發現開發者們在異步流程控制、代碼調試、持續集成和包的搜索方面的關注和選擇。同時也告訴我們Node.js開發者面臨著一大痛點:調試。

本次調查從七月11日到八月15日總共歷時35天,總共有1126名node.js開發者參與了本次的調查。其中55%的開發者具有兩年以上的node.js開發經驗,26%具有1到兩年的經驗。20%為公開交易的公司工作,7%在500強的公司工作。

基于Node.js的技術產品

MongoDB成為首選的數據庫

MongoDB成為數據庫的首選

從上圖我們可以看到,MongoDB已經成為開發者首選的數據庫。大約有三分之二的人向我們聲稱在他們的應用中使用了MongoDB。同樣值得關注的是Redis在有經驗的Node.js開發者中的受歡迎程度在快速的增長,PostgreSQL/ElasticSearch也有著同樣的增長趨勢。

不同經驗的Node開發者所選擇的數據庫

Redis是緩存的一種解決方案,但還是有許多開發者不是這樣做的

Node.js Survey - Redis成為緩存的首要解決方案

有半數的開發者向我們反饋他們使用Redis來解決緩存的問題,但驚人的是依然有45%聲稱他們完全不用Redis。從不同經驗的開發者的統計數據中我們可以看到富有經驗的開發者比不到一年的開發者們更喜歡使用Redis。

Node.js Survey - 不同經驗的開發者使用緩存的情況

消息系統的依然受到冷落

從我們的調查數據來看,有58%的Node.js開發者不使用任何的消息系統。這意味著要么是開發者們選擇使用REST API來為他們的微服務提供消息服務,要么是他們還沒有復雜到需要使用消息系統的服務。

Node.js Survey - What messaging systems are you using? RabbitMQ wins.

24%的開發者們在使用消息系統,并且他們大多選擇了 RabbitMQ.RabbitMQ的受歡迎程度遠遠的超過了其它的同類型產品。

Node.js Survey - Messaging system usage

Node.js 應用大多數托管在 AWS

有43%的開發者們將應用托管在AWS上,但他們中的34%都有自己的數據存儲系統,這在企業應用中超過了50%。(當然這并不令人驚訝)

Node.js Survey - Where do you run your Node.js apps? AWS.

有趣的是,Heroku和DigitalOcean在你追我趕成為第二大托管平臺的同時,DigitalOcean更受小公司(50人以下)的喜愛,而Heroku更受到大公司的歡迎。

Node.js Survey - Running apps and company size

Docker 在Node社區中占據主導地位

就目前來看,Docker成為首選的容器解決方案,有47%的人聲稱他們在使用 Docker, 同時在使用容器解決方案的開發者中有73%的選擇了Docker.Docker在不同規模的公司中都很受歡迎,同時更受到富有經驗的開發者(一年以上的Node開發經驗)的喜愛。

Node.js Survey - What container techs or VMs are you using? Docker.

有64%的人告訴我們他們在逐漸的使用容器技術,這也意味著自從上一次Node.js統計以來,截止到2016年8月為止,容器技術的使用率已經提高了20%(上一次統計結果為45%)。

Node.js Survey - Container techs and developer experience.

亞馬遜容器服務成為運行容器的第一選擇

Node.js Survey - How do you run your containers? Amazon Container Service wins.

雖然亞馬遜容器占據著主導的地位,但我們也不能忽視Kubernetes也有著25%的占有量,同時從我們的數據來看,kubernetes更受到企業開發者的歡迎。

Node.js Survey - Running Amazon and Kubernetes with company size

Node.js 開發

開發者更喜歡配置文件而不是環境變量

大部分的node.js開發者更喜歡配置文件而不是環境變量(59% VS 38%),只有29(3%)兩者都在使用。

Node.js Survey - Environment variables or config files? Config files wins.

使用配置文件存在一定的安全隱患,因為你的認證數據就存儲在代碼倉庫中。如果你的包含認證數據的代碼托管在github,那么久有可能遭到不懷好意的開發者的麻煩。

從隱私的角度來說,更推薦使用環境變量來做驗證,當然針對普通的情況依然可以使用配置文件。

Promises成為異步流程控制的主要解決方案

在Node.js中,大多數的核心庫都使用了許多的回調函數,而從本次的調查結果來看,開發者們現在更多的使用Promise。

Node.js Survey - What do you use for async control flow? Promises wins.

大概半年以前,有一個Node.js倉庫的Pull-request要求所有異步函數返回一個原生的Promise.官方給出的回復如下:
'A Promises API doesn’t make sense for core right now because it's too early in the evolution of V8-based promises and their relationship to other ES* features. There is tiny interest within the TC in exploring this in the core in the short-term.'

也許我們該重新思考這個問題。

開發者們大多通過 console.log 來調試程序

Console.log成為開發者們主要的調試手段,別Node Inspector還要多。大約有四分之三的開發者都通過console.log的方式來發現程序中的錯誤即使在面對非常復雜的程序。

Node.js Survey - How do you debug your applications? Using the console.log

從數據中我們也可以看到富有經驗的開發者們逐漸的使用Node Inspector 和 Debug Module 來調試程序。

Node.js Survey - Debugging applications and developer experience

APM(性能堅持工具) 在 Node.js 社區的使用率依然很低

從調查的反饋來看,只有約四分之一的開發者使用了APM工具來發現應用中的問題。從使用率來看可以發現隨著公司規模的擴大和開發者經驗的增長,APM的使用率會變得越高。

Node.js Survey - How do you identify issues in your app? Using logs.

SaaS CI’s 在node.js社區中依然保持著比較低的份額

從我們的調查數據來看,大多數的開發者通過使用shell腳本來推送或是部署代碼。但Jenkin成為持續推送和集成里面最為受歡迎的平臺。

Node.js Survey - What do you use to push code or containers? Shell scripts win.

Node.js 開發者很少更新依賴

使用Node.js的過程中是極力的推薦開發者頻繁的更新代碼依賴的。從最近的一份統計可以看出大約有15%的npm 包是攜帶有安全漏銅的,而有著76%的應用在依賴這些npm包。

Node.js Survey - How often do you update dependencies? Less frequently than a month.

超過一周才更新一次依賴會使應用一直處于被攻擊的狀態。而從我們的統計結果來看,有45%的開發者超過一個月才更新一次,27%的開發者會每個月更新一次,28%的開發者會每周更新一次。

上面這些統計數據不受公司規模和開發者經驗程度的影響。

很多開發者通過 google來尋找他們需要的npm包

從統計結果來看,很大一部分的開發者通過google來尋找npm包并選擇使用哪一個npm包。有56%的開發者們喜歡使用npmjs.org/npms.io 來搜索npm包文件,這在開發經驗大于4年的開發者中比例高達70%.

Node.js Survey - How do you decide what package to pick? People mostly Google for them.

初級的Node.js開發者并不知道語義化的版本號的含義

盡管有71%的開發者使用語義化的版本號來管理他們發布的npm包,但這個數字應該更高才對。每個開發者都應該使用語義化的版本號管理,npm 使用 semver。如果不使用的話在更新包文件的時候是很容易出錯的。

Node.js Survey - Do you use semantic versioning? Mostly yes.

如果我們仔細的分析調查的數據就會發現一年以內經驗的node.js有一半不知道semver是什么而且也沒使用過。而富有經驗的開發者對此更熟悉也用得更多。

Node.js團隊所使用的工具和技術更新非常快

通過我們的調查數據發現,35%的node.js開發們會在幾天內就會引入新的工具,產品,有29%會在幾周內引入。

Node.js Survey - How much time is needed to introduce new technologies, tools or products to your company? A few weeks.

如我我們仔細的分析調查的數據就會發現隨著公司體積的增長,引入新工具及技術所需要的時間也會相應的增長。

調試是Node.js開發中最令人詬病的問題

我們同樣也問了開發者他們覺得開發中最頭疼的問題是什么,下面是我們得到的結果:

  • 調試、分析、性能監控
  • 回調地獄
  • 理解異步程序
  • 依賴管理
  • 缺乏實踐
  • 架構
  • 不健全的文檔
  • 尋找合適的npm包

總結

Node.js開發依然是一件有趣和充滿挑戰的事。在此對參與本次調查統計的所以工程師們表示感謝,同時也希望本次的調查結果對整個社區有所價值。

完整的統計數據將會在幾天后發布到這個博客上。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,516評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,484評論 2 379

推薦閱讀更多精彩內容