{"id":3100,"date":"2017-10-02T10:00:21","date_gmt":"2017-10-02T13:00:21","guid":{"rendered":"https:\/\/blog.umbler.com\/?p=3100"},"modified":"2021-10-18T18:50:49","modified_gmt":"2021-10-18T21:50:49","slug":"node-js-quem-ja-utiliza-a-tecnologia-e-aprova","status":"publish","type":"post","link":"https:\/\/blog.umbler.com\/br\/node-js-quem-ja-utiliza-a-tecnologia-e-aprova\/","title":{"rendered":"Node.js: quem j\u00e1 utiliza a tecnologia (e aprova)?"},"content":{"rendered":"<p>O que dizer (al\u00e9m do que j\u00e1 foi dito <a href=\"https:\/\/blog.umbler.com\/br\/node-js-na-umbler\/\" target=\"_blank\" rel=\"noopener noreferrer\">aqui<\/a>) desta <a href=\"https:\/\/blog.umbler.com\/br\/avancos-em-ia-generativa\/\">tecnologia<\/a> que chegou na Umbler h\u00e1 pouco, mas que j\u00e1 consideramos pacas? Sim, n\u00f3s aqui na Umbler amamos o Node.js, n\u00e3o restam d\u00favidas. Agora, o que ser\u00e1 que as grandes empresas do mundo pensam a respeito desta tecnologia? O que pensam os gestores que optam por migrar um sistema inteiro para uma nova linguagem, ou, neste caso, um novo runtime? Por que empresas, gigantes em seus mercados, arriscam optam por uma mudan\u00e7a t\u00e3o dr\u00e1stica? O que elas ganham com isso? E o mais importante: o que podemos aprender com esses vanguardistas?<\/p>\n<h2>Mas, primeiro: o que \u00e9 Node.js?<\/h2>\n<p>Nunca \u00e9 demais relembrar: o <a href=\"https:\/\/academy.umbler.com\/primeiros-passos-com-node-js\/\" target=\"_blank\" rel=\"noopener noreferrer\">Node.js<\/a> \u00e9 um runtime de JavaScript, criado pelo desenvolvedor Ryan Dahl em 2009 e que, desde seu an\u00fancio, vem ganhando espa\u00e7o de destaque entre profissionais de tecnologia do Brasil e do mundo. Isso porque o Node.js, que \u00e9 desenvolvido em cima do motor JavaScript V8 &#8211; engine criada pelo Google e utilizada nos navegadores Chrome e Chromium (open source) -, leva o processamento e renderiza\u00e7\u00e3o do c\u00f3digo JavaScript para o lado do servidor (back-end). Isso, aliado ao fato de suas requisi\u00e7\u00f5es I\/O (input e output) serem n\u00e3o bloqueantes, possibilita criar aplica\u00e7\u00f5es r\u00e1pidas, escal\u00e1veis e est\u00e1veis.<\/p>\n<p align=\"center\"><iframe src=\"https:\/\/www.youtube.com\/embed\/ztspvPYybIY\" width=\"750\" height=\"415\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>H\u00e1 oito anos, quando foi apresentado ao mercado, os desenvolvedores iniciaram sua utiliza\u00e7\u00e3o de forma muito t\u00edmida. A culpa disso, em partes, foi da comunidade de desenvolvedores Ruby, que na \u00e9poca era conhecida (e criticada) por sua postura exclusivista. Se este padr\u00e3o se repetisse na comunidade Node.js, seria o suficiente para desencorajar os desenvolvedores a desbravar a nova tecnologia. Mais tarde, neste mesmo ano, foi lan\u00e7ado o npm (Node Package Manager), reposit\u00f3rio oficial de depend\u00eancias para aplica\u00e7\u00f5es Node.js, dando um g\u00e1s &#8211; e muitas possibilidades &#8211; \u00e0 comunidade (publicamos recentemente um conte\u00fado sobre npm e Yarn que voc\u00ea pode ler <a href=\"https:\/\/blog.umbler.com\/br\/npm-vs-yarn-e-agora-quem-podera-nos-defender\/\" target=\"_blank\" rel=\"noopener noreferrer\">aqui<\/a>).<\/p>\n<p>Durante o ano seguinte, em 2010, Ryan seguiu apresentando sua cria\u00e7\u00e3o em diversos eventos e meetups de peso, como o Google Tech Talk (v\u00eddeo <a href=\"https:\/\/www.youtube.com\/watch?v=F6k8lTrAE2g\" target=\"_blank\" rel=\"noopener noreferrer\">aqui<\/a>). Em 2011, um grande acontecimento refor\u00e7ou a certeza de que Node.js chegou para ficar: a Microsoft lan\u00e7a uma vers\u00e3o nativa do Node.js para seu sistema operacional, o Windows. A partir da\u00ed, diversas empresas come\u00e7aram a entrar nesse novo universo. O LinkedIn, precursor, passa a usar Node.js em sua aplica\u00e7\u00e3o web e lan\u00e7a, neste mesmo ano, sua nova vers\u00e3o do App para mobile, j\u00e1 com esta tecnologia. A Uber segue o mesmo rumo, redesenhando todo seu sistema para rodar com Node.js.<\/p>\n<p>Durante os anos de 2012, 2013 e 2014, v\u00e1rios frameworks para Node.js (como o Hapi e o Ghost) foram desenvolvidos e lan\u00e7ados pela comunidade. Ao final do ano de 2014, alguns desenvolvedores anunciaram a inten\u00e7\u00e3o de criar um comit\u00ea de conselho para o Node.js. Este era o primeiro vislumbre do que viria a ser a <a href=\"https:\/\/nodejs.org\/en\/foundation\/\" target=\"_blank\" rel=\"noopener noreferrer\">Node.js Foundation<\/a>.<\/p>\n<p>Fundado em 2015, o Node.js Foundation conta com a participa\u00e7\u00e3o de empresas gigantes de seus setores, como a pr\u00f3pria Microsoft, IBM, RedHat, Google, Yahoo!, PayPal, entre outras. Hoje, o projeto Node.js j\u00e1 conta com a colabora\u00e7\u00e3o de mais 1650 desenvolvedores ao redor do globo. Isso faz do Node.js uma tecnologia s\u00f3lida, bem distante da modinha que parecia ser no princ\u00edpio.<\/p>\n<h2>Legal, mas e as empresas que usam Node.js?<\/h2>\n<p>OK, OK, acalme o seu cora\u00e7\u00e3o! Vamos falar sobre algumas das maiores empresas do mundo. Vamos mostrar como (e porque) elas passaram a utilizar o Node.js em suas aplica\u00e7\u00f5es e, o mais importante, o que elas ganharam com isso. Preparados? Vamos l\u00e1!<\/p>\n<h3>LinkedIn<\/h3>\n<p>O LinkedIn, a maior rede social orientada a profissionais de diversos setores, sentia na pele a necessidade de focar na solu\u00e7\u00e3o para velocidade da sua aplica\u00e7\u00e3o. Literalmente uma corrida contra o tempo. Foi ent\u00e3o que, em 2011, lan\u00e7ou a nova vers\u00e3o do seu aplicativo mobile, fazendo uso de Node.js e HTML5.<\/p>\n<p>O l\u00edder de desenvolvimento na LinkedIn, Kiran Prasada, disse, em entrevista ao VentureBeat, que o desenvolvimento em Node.js \u201cfoi r\u00e1pido, acima de qualquer padr\u00e3o\u201d. Voc\u00ea pode ler a entrevista na \u00edntegra <a href=\"https:\/\/venturebeat.com\/2011\/08\/16\/linkedin-node\/\" target=\"_blank\" rel=\"noopener noreferrer\">aqui<\/a> (em ingl\u00eas).<\/p>\n<h3>Netflix<\/h3>\n<p>A Netflix \u00e9 l\u00edder no servi\u00e7o de streaming de m\u00eddia e v\u00eddeos on-demand. Sua plataforma, at\u00e9 ent\u00e3o desenvolvida em Java, exigia a manuten\u00e7\u00e3o de dois sistemas diferentes (front e back-end), al\u00e9m de possuir builds demoradas e precisar de m\u00e1quinas muito potentes para o desenvolvimento. Para se ter uma ideia, a aplica\u00e7\u00e3o levava aproximadamente 40 minutos para ser inicializada. Para uma plataforma direcionada a dados (data-driven), com in\u00fameros testes A\/B que s\u00e3o executados a cada intera\u00e7\u00e3o do usu\u00e1rio, estava cada vez mais invi\u00e1vel manter as toneladas de dados processados a cada clique rodando como estava.<\/p>\n<p>Ao optar por utilizar JavaScript e Node.js, a Netflix foi capaz de transformar todo seu site em uma aplica\u00e7\u00e3o simples e, com isso, reduzir em 70% o tempo de inicializa\u00e7\u00e3o de sua aplica\u00e7\u00e3o. Isso tornou sua plataforma muito mais r\u00e1pida (e seus mais de 93 milh\u00f5es de clientes mais felizes). Conhe\u00e7a o case completo assistindo ao v\u00eddeo abaixo.<\/p>\n<p align=\"center\"><iframe src=\"https:\/\/www.youtube.com\/embed\/p74282nDMX8\" width=\"750\" height=\"415\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<h3>IBM<\/h3>\n<p>A IBM foi outra das grandes a abra\u00e7ar o Node.js. Em 2015, Myles Borins recebeu a tarefa de trabalhar em um utilit\u00e1rio de teste para m\u00f3dulos e frameworks para Node.js, o The Canary in the Gold Mine (CITGM). Este utilit\u00e1rio testa e gera relat\u00f3rios completos sobre qualquer tipo de aplica\u00e7\u00e3o. Segundo Myles, o CITGM foi capaz de encontrar e relatar os mais diversos tipos de regress\u00f5es em todo o ecossistema, incluindo o pr\u00f3prio n\u00facleo do Node.js.<\/p>\n<p align=\"center\"><iframe src=\"https:\/\/www.youtube.com\/embed\/8is8iKlo8oQ\" width=\"750\" height=\"415\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<h3>Uber<\/h3>\n<p>A empresa Uber foi uma das primeiras a utilizar o Node.js em sua aplica\u00e7\u00e3o, iniciando ainda na vers\u00e3o 0.8.0 (a vers\u00e3o atual \u00e9 8.5.0). Desde a vers\u00e3o 0.10 a Uber j\u00e1 relatava melhora no desempenho e estabilidade da plataforma. Parte do core dos sistemas dessa empresa, mais especificamente os sistemas distribu\u00eddos e bases de dados geoespaciais, hoje, \u00e9 escrito em Node.js.<\/p>\n<p>O engenheiro S\u00eanior da Uber, em uma palestra para a The Node.js Conference, fez a seguinte afirma\u00e7\u00e3o (tradu\u00e7\u00e3o livre): \u201cA coisa que eu mais gosto no Node.js \u00e9 o quanto de poder que eu, pessoalmente, passei a ter com ele. A facilidade com a qual consigo fazer coisas com Node.js amplificou o meu poder enquanto desenvolvedor.\u201d<\/p>\n<p>Confira a apresenta\u00e7\u00e3o completa no v\u00eddeo abaixo.<\/p>\n<p align=\"center\"><iframe src=\"https:\/\/www.youtube.com\/embed\/ElI5QtUISWM\" width=\"750\" height=\"415\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<h3>Walmart<\/h3>\n<p>A Walmart, maior varejista do mundo, levou a utiliza\u00e7\u00e3o do Node.js a um novo patamar. Em 2013, a tecnologia Node.js foi utilizada em seu site mobile com foco no Black Friday. Para a Walmart, a utiliza\u00e7\u00e3o do Node.js se mostrou muito, mas muito, vantajosa.<\/p>\n<p>Em uma entrevista ao VentureBeat, Ben Galbraith e Dion Almaer, presidente e vice-presidente, respectivamente, do departamento de mobile da Walmart, afirmaram ter ganhado (e muito) em desempenho. Para traduzir em n\u00fameros, no Black Friday anterior a Walmart havia registrado tr\u00e1fego de 200 milh\u00f5es de usu\u00e1rios. Utilizando Node.js em seu site mobile, os servidores n\u00e3o chegaram a utilizam nem 1% da sua capacidade de processamento. Dion ainda afirma que \u201cele (o Node.js) \u00e9 perfeito para o que estamos fazendo em mobile.\u201d Voc\u00ea pode ler a mat\u00e9ria completa <a href=\"https:\/\/venturebeat.com\/2012\/01\/24\/why-walmart-is-using-node-js\/\" target=\"_blank\" rel=\"noopener noreferrer\">aqui<\/a> (em ingl\u00eas) e assistir ao v\u00eddeo mantido pela Joyent <a href=\"https:\/\/www.joyent.com\/blog\/node-js-at-walmart-introduction\" target=\"_blank\" rel=\"noopener noreferrer\">aqui<\/a>.<\/p>\n<h3>PayPal<\/h3>\n<p>Esta \u00e9 outra das grandes empresas a investirem na re-arquitetura de sua aplica\u00e7\u00e3o para os moldes do Node.js. Um pouco mais conservadores que as outras empresas, a PayPal reformulou, inicialmente, apenas a tela de resumo da conta \u2013 \u201cuma das mais visitadas do site\u201d, segundo Jeff Harrell. Para testar de forma segura, eles desenvolveram a plataforma em Node.js e Java, rodando as duas vers\u00f5es paralelamente para identificar qual tinha o melhor desempenho. Voc\u00ea arrisca o resultado? Sim, Node.js ganhou.<\/p>\n<p>O time que usou Node.js desenvolveu duas vezes mais r\u00e1pido, com menos pessoas, 33% menos linhas de c\u00f3digo e 40% menos arquivos. Em rela\u00e7\u00e3o \u00e0 performance da aplica\u00e7\u00e3o, a vers\u00e3o com Node.js conseguiu atender o dobro de usu\u00e1rios por segundo do que o Java, atingindo a m\u00e9dia de 35% mais velocidade na entrega das requisi\u00e7\u00f5es.<\/p>\n<p>Estes e outros detalhes da utiliza\u00e7\u00e3o do Node.js no PayPal podem ser encontrados neste v\u00eddeo:<\/p>\n<p align=\"center\"><iframe src=\"https:\/\/www.youtube.com\/embed\/-00ImeLt9ec\" width=\"750\" height=\"415\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<h3>Dow Jones<\/h3>\n<p>A editora estadunidense Dow Jones (respons\u00e1vel pelo jornal financeiro mais famoso do mundo, o The Wall Street Journal), j\u00e1 usava JavaScript em seus projetos. Os desenvolvedores come\u00e7aram a utilizar Node.js, pela primeira vez, em 2011. Segundo Scott Rahner, l\u00edder de desenvolvimento da empresa, a tecnologia foi utilizada para uma aplica\u00e7\u00e3o experimental de leitura do Facebook chamada The Wall Street Journal Social. O resultado, como voc\u00ea j\u00e1 deve imaginar, foi que a aplica\u00e7\u00e3o teve um desempenho muito acima do esperado. N\u00e3o apenas a performance da aplica\u00e7\u00e3o em si, mas o tempo de desenvolvimento foi consideravelmente menor do que o esperado.<\/p>\n<p>O sucesso obtido com o Node.js foi tanto, que o CTO da Dow Jones convenceu a alta c\u00fapula da empresa a apoiar a tecnologia. O resultado disso \u00e9 que, hoje, o Node.js \u00e9 a tecnologia prim\u00e1ria da empresa, sendo atualmente utilizada para a maioria dos projetos, especialmente os produtos para os consumidores.<\/p>\n<p>Maiores detalhes sobre os testes da Dow Jones podem ser encontrados <a href=\"https:\/\/www.algoworks.com\/blog\/developing-enterprise-applications-using-node-js\/\" target=\"_blank\" rel=\"noopener noreferrer\">nesta mat\u00e9ria<\/a> (em ingl\u00eas).<\/p>\n<h2>O que aprendemos com tudo isso?<\/h2>\n<p>Muitas das empresas que colaboram ativamente com a comunidade Node.js, como Google e Yahoo!, por exemplo, n\u00e3o divulgam abertamente como fazem uso da tecnologia, ou quais foram seus resultados, mas ainda assim, considerando que \u201ccolaboram ativamente com a comunidade Node.js\u201d, podemos imaginar que devem ter, sim, \u00f3timos resultados.<\/p>\n<p>Com base nestes relatos (e em tantos outros dispon\u00edveis na internet), podemos observar que as aplica\u00e7\u00f5es das empresas que se aventuraram com o Node.js melhoraram, basicamente, em tr\u00eas grandes fatores:<\/p>\n<h3>Produtividade dos times de desenvolvimento<\/h3>\n<p>Estamos falando de JavaScript aqui. Lembra da pesquisa da Stack Overflow? Se mais de 62% dos desenvolvedores entrevistados t\u00eam como linguagem preferida o JavaScript, \u00e9 natural que estes desenvolvedores produzam mais (e melhor) trabalhando com uma linguagem que \u00e9 familiar. Desenvolvedores felizes fazem bons c\u00f3digos (lembre-se disso).<\/p>\n<h3>Performance\/Desempenho das aplica\u00e7\u00f5es<\/h3>\n<p>Ass\u00edncrono e com Inputs e Outputs n\u00e3o bloqueantes, o Node.js foi feito pensando em performance. Aplica\u00e7\u00f5es mais r\u00e1pidas resultam em boa experi\u00eancia de usu\u00e1rios. Uma boa UX resulta em usu\u00e1rios mais mais satisfeitos. E, por sua vez, usu\u00e1rios satisfeitos resultam em mais faturamento (lembre-se disso tamb\u00e9m).<\/p>\n<h3>Economia de recursos<\/h3>\n<p>Por fim, mas n\u00e3o menos importante: a economia. Com base apenas no relato da Walmart, em que sua aplica\u00e7\u00e3o mobile consumiu menos de 1% da capacidade de processamento do servidor (e veja bem, recebendo mais de 200 milh\u00f5es de usu\u00e1rios por minuto) mostra que o Node.js n\u00e3o est\u00e1 de brincadeira.<\/p>\n<p>Para concluir, \u00e9 importante ter em mente que, apesar de j\u00e1 estar com longos oito anos de vida, o Node.js ainda \u00e9 uma crian\u00e7a em desenvolvimento. Ganhando cada vez mais poder (e com ele, mais responsabilidades!), o Node.js est\u00e1 se fazendo presente em grandes empresas, desde as mais simples aplica\u00e7\u00f5es, at\u00e9 um sistema inteiro de com\u00e9rcio eletr\u00f4nico. Sendo assim, voc\u00ea deveria considerar o Node.js como um forte candidato \u00e0 sua lista de dev skills, pois o futuro desta tecnologia \u00e9 promissor.<\/p>\n<p>E a\u00ed, o que achou do post? J\u00e1 deu os seus primeiros passos com desenvolvimento Node.js? Deixe seu relato nos coment\u00e1rios e at\u00e9 a pr\u00f3xima \ud83d\ude42<\/p>\n<p><strong>Dica!<\/strong> Se quiser aprender ainda mais sobre Node.js, confira nossos materiais especiais sobre o tema no <a href=\"https:\/\/academy.umbler.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Umbler Academy<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O que dizer (al\u00e9m do que j\u00e1 foi dito aqui) desta tecnologia que chegou na Umbler h\u00e1 pouco, mas que j\u00e1 consideramos pacas? Sim, n\u00f3s aqui na Umbler amamos o Node.js, n\u00e3o restam d\u00favidas. Agora, o que ser\u00e1 que as grandes empresas do mundo pensam a respeito desta tecnologia? O que pensam os gestores que [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":5275,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[256],"class_list":["post-3100","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev","tag-node-js"],"_links":{"self":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts\/3100"}],"collection":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/comments?post=3100"}],"version-history":[{"count":0,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts\/3100\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/media\/5275"}],"wp:attachment":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/media?parent=3100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/categories?post=3100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/tags?post=3100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}