Desenvolvimento Web: conhecendo o mundo de Node.js

Conhecendo o mundo node.js

A tecnologias para web estão cada vez mais renovadas com frameworks e novas linguagens para desenvolvimento web ágil e escalável. O Node.JS é um exemplo disso.

Ele é uma plataforma server-side para linguagem Javascript – sim, isso mesmo, Javascript no servidor!

Um dos problemas que esta tecnologia surgiu para resolver, foi a de facilitar o desenvolvimento de aplicações real-time e de alta escalabilidade, aplicando três características chaves que serão explicadas abaixo:

Linguagem Google Chrome Javascript V8 – Você irá desenvolver aplicações utilizando Javascript, algo muito interessante, pois essa linguagem permite trabalhar de forma simplificada tudo o que receber do lado cliente. A curva de aprendizado será pequena, pois qual é o programador web que nunca brincou com javascript antes? Na prática você aprenderá facilmente a dominar o Node.js, visto que grande parte do desenvolvimento será apenas através de frameworks prontos que serão implementados em sua aplicação, e o grande desafio será conhecer e aplicar os diversos Design Patterns do Javascript e dominar toda API da plataforma.

Orientado à eventos de I/O – O Node.js já vem acompanhado com diversos módulos que possibilitam trabalhar com recursos de processamento I/O no servidor, isso significa que nativamente você terá diversos módulos bem baixo nível para trabalhar com protocolos: HTTP, HTTPS, DNS, WebSockets, TCP, além de bibliotecas para manipular arquivos, processamento assíncronos, criptografias, manipulação de objetos JSON e muito mais. Tudo isso será trabalhado através de eventos assíncronos (callbacks do javascript), o que traz um ganho enorme em performance no processamento, visto que trabalhando com eventos, uma determinada tarefa só ocorrerá quando necessário e todo esse controle de eventos acontece de forma abstraída pelo javascript, facilitando a vida do desenvolvedor, ou seja, em diversos momentos você programará orientado à callbacks de forma intuitiva, delegando toda a responsabilidade para a própria tecnologia.

Threads Não-Bloqueantes – Essa é uma característica bem específica do Node.js. Não há um gerenciador de threads, visto que o Node.js é totalmente single-thread, algo diferente das plataformas Java e .NET. Isso traz como vantagem uma alta escalabilidade para sistemas que necessitam de um processamento sem controle de processamento concorrente (threads), pois não há um agente bloqueando e enfileirando threads, porém, como desvantagem esse conceito não é recomendável para todos os casos, por exemplo o desenvolvimento de sistemas transacionais, visto que há uma grande chance de uma perda dos dados devido a falta desse controle. Nos casos de sistemas que necessitem de uma resposta rápida, por exemplo, consultas frequentes no banco de dados, o node.js faz esse trabalho muito bem.

E ai, gostou da tecnologia? Então veja abaixo alguns links relevantes para quem deseja estudar e brincar com Node.js:

Bom é isso pessoal! Espero que tenham gostado da minha primeira participação aqui no Profissionais TI.

Se você já teve experiências com o Node.js ou se quiser complementar algo do conteúdo, deixe seu comentário!

Um grande abraço!


Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!