Este documento discute o desenvolvimento de aplicações híbridas e escaláveis usando JavaScript e Node.js. Apresenta Node.js como uma solução para problemas de escalabilidade em sistemas de rede que requerem milhões de conexões simultâneas através do uso de I/O não-bloqueante e processamento assíncrono. Também discute a necessidade de um cliente para uma aplicação híbrida que permita o mesmo código-fonte para web e desktop com acesso a sistemas de arquivos locais e remotos.
3. O Cenário atual
S Crescimento da Internet.
S Demanda por sistemas híbridos/responsivos.
S Custo escalonamento vertical/horizontal.
S Abstração de milhões de conexões simultâneas.
S +I/O = +Processamento/Memória = +Upgrade = +Custo
S Escalabilidade (Capacidade de Crescimento)
5. Node.JS
S O que é ?
S V8 Google JavaScript Engine.
S JavaScript.
S Non-blocking I/O.
S Event Loop e Single Thread.
S Asynchronous Processes.
S Quais problemas resolve ?
S O que não é ?
6. V8 – JavaScript Engine
S Open source engine do Google.
S Escrito em C++.
S Usado no Chrome.
11. Quais problemas resolve?
S Sistemas de Redes escaláveis.
S Necessidade de abstrair milhões de conexões.
S Problemas onde non-blocking I/O é essencial.
S Mas, não é bala de prata. ;)
13. A Necessidade do Cliente
S Aplicação Híbrida.
S Non-blocking I/O.
S Aplicação Web e Desktop, com mesmo fonte. ;)
S Acesso ao File System.
S Servidor WebDav.
S Google Drive, DropBox, Mobile e Local File System
15. Metodologia e Entregas
S Scrum
S Product owner
S Product backlog
S Sprints.
S BDD – Behaviour Driven Development
S V1 (Primeira entrega) realizada dia 24/11/2014
16. BDD – Behaviour Driven
Development
S Criação de testes unitários.
S Criação de testes funcionais.
S Relatórios de code coverage e unit test.