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阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容