O documento fornece uma introdução ao Node.js, cobrindo seus principais conceitos como:
1) Node.js é uma plataforma baseada no runtime do Chrome que permite desenvolvimento de aplicações escaláveis usando modelo não bloqueante de eventos;
2) Ele usa um único thread para tratar requisições de forma não bloqueante, evitando problemas de escalabilidade de modelos com múltiplas threads;
3) Node.js é ideal para aplicações com uso intensivo de dados ou em tempo real e roda em diversos sistemas operacionais incluindo Linux, OSX
Node.JS - Workshop do básico ao avançado
Workshop que realizo sobre Node.JS in-company.
Exemplos deste workshop estão disponíveis no seguinte endereço.
https://github.com/nbluis/workshop-nodejs
Node.JS - Workshop do básico ao avançado
Workshop que realizo sobre Node.JS in-company.
Exemplos deste workshop estão disponíveis no seguinte endereço.
https://github.com/nbluis/workshop-nodejs
Vagrant - ambiente de desenvolvimento virtualizadoVinícius Krolow
Talk apresentada no Tchêlinux - Pelotas (2014)
Falando de ambientes de desenvolvimento virtual, apontando as facilitades/vantagens do uso do mesmo, e usando vagrant como ferramenta criar esses ambientes
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBMario Guedes
Nos dias de hoje há várias oportunidades de expormos ao menos parte da nossa aplicação para o mundo, seja por conta de um aplicativo móvel, seja por conta de integração com terceiros. Outras vezes se mostra oportuno tentarmos oferecer uma solução cloud ou invés de uma solução "on-premise". Então, sair do modelo cliente servidor para um modelo SOA nos trás desafios relacionados a escalabilidade e resiliência. Nesta palestra mostrarei uma arquitetura escalável e resiliente baseado em REST e micro serviços utilizando a abordagem noSQL.
Conheça mais sobre Composer, a ferramenta que trouxe uma das maiores revoluções para o PHP. Composer vai muito além de instalação de dependências, aprenda a poupar dias e meses de trabalho e passe a ser um dev feliz focado em trazer as melhores soluções técnicas para as necessidades do negócio.
Docker é uma engine de contêires linux, poderosa, e que vem revolucionando o mercado nos últimos 2 anos, ganhando apoio de grandes empresas como google e microsoft.
Vagrant - ambiente de desenvolvimento virtualizadoVinícius Krolow
Talk apresentada no Tchêlinux - Pelotas (2014)
Falando de ambientes de desenvolvimento virtual, apontando as facilitades/vantagens do uso do mesmo, e usando vagrant como ferramenta criar esses ambientes
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBMario Guedes
Nos dias de hoje há várias oportunidades de expormos ao menos parte da nossa aplicação para o mundo, seja por conta de um aplicativo móvel, seja por conta de integração com terceiros. Outras vezes se mostra oportuno tentarmos oferecer uma solução cloud ou invés de uma solução "on-premise". Então, sair do modelo cliente servidor para um modelo SOA nos trás desafios relacionados a escalabilidade e resiliência. Nesta palestra mostrarei uma arquitetura escalável e resiliente baseado em REST e micro serviços utilizando a abordagem noSQL.
Conheça mais sobre Composer, a ferramenta que trouxe uma das maiores revoluções para o PHP. Composer vai muito além de instalação de dependências, aprenda a poupar dias e meses de trabalho e passe a ser um dev feliz focado em trazer as melhores soluções técnicas para as necessidades do negócio.
Docker é uma engine de contêires linux, poderosa, e que vem revolucionando o mercado nos últimos 2 anos, ganhando apoio de grandes empresas como google e microsoft.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
O Desenvolvimento de Aplicações WEB nem sempre é uma tarefa trivial. Esta apresentação demonstra diversos conceitos, tecnologias e metodologias que são utilizadas em diversos projetos.
Na estréia da série sobre Node.js, vamos falar sobre a história e as principais caraterísticas da plataforma como o V8, event loop e thread pool.
Vamos mostrar por meio de diversos exemplos como o Node.js funciona e quais são os aspectos importantes em termos de escalabilidade e performance.
https://www.youtube.com/watch?v=KtDwdoxQL4A
Node.js: 5 razões para começar a utilizarFilipe Falcão
5 razões para te convencer a adicionar o Node a sua stack back-end. Nessa talk, mostro as principais características que tornam o Node uma escolha bastante interessante para sua aplicação.
Light Talk sobre Node.js e suas características inovadoras pelo qual ultimamente anda se destacando entre os programadores por oferecer alto desempenho e grande escabilidade para as aplicações de grande porte.
Esse foi o slide que apresentei no Segundo Encontro DevInSantos no dia 29 de outubro de 2011 na Cocento Tecnologia.
Se você deseja entrar na comunidade DevInSantos fique atento sobre os próximos encontros seguindo o perfil: http://www.meetup.com/devinsantos/
Link do blog http://www.udgwebdev.com/light-talk-introducao-sobre-nodejs/
Palestra sobre Javascript que ministrei na III Mostra Científica do Senac-RS.
A palestra conta um pouco da história do Javascript e o porque da imcompreensão da linguagem. Também mostra o que é possível fazer e como desenvolver um código um profissional e levado a sério com Javascript.
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...Jackson F. de A. Mafra
Vamos abordar primeiro a logística de manutenção de um projeto com alto débito técnico como o WordPress.
Em seguida, examinará o que isso significa para projetos que dependem do WordPress.
Finalmente, ele irá percorrer algumas maneiras potenciais de mudar para um processo mais equilibrado, com uma análise mais detalhada de como o
WordPress finalmente conseguiu escapar de seu requisito do PHP 5.2.
O GitLab é um gerenciador de repositórios baseado em Git. Suas ferramentas incluem um wiki, um gerenciador de tarefas e um pipeline de CI/CD, etc. O GitLab é similar ao GitHub, porém, por ser open source, pode ser armazenado em infraestrutura própria, além da versão em nuvem do mesmo, podendo ter repositórios públicos e privados.
GitLab Runner, o GitLab permite que você use o Runner, que é um projeto open source que é usado para executar os jobs e enviar os resultados de volta para o GitLab. Ou seja, ele nos permite buildar sem a necessidade de nenhuma instalação externa.
Veremos uma introdução de como tudo isso funciona.
Discutiremos a possibilidade de usar o WordPress como um servidor para alimentar conteúdo para aplicativos móveis e armazenar as informações geradas pelos usuários destes.
Para isso, ferramentas disponíveis no ecossistema serão analisadas, ambas oferecidas pelo CMS (API REST, autenticação, banco de dados ...) e geradas pela comunidade ou por nós mesmos (plugins).
Serão estudados quais pontos essenciais dos quais um MBaaS (Mobile Backend como Serviço) deve cobrir WordPress e serão ponderados as ocasiões em que usá-lo com relação a outras soluções do mercado mais comum.
O titulo é click bait mas a talk não. Todo mundo que se encanta pelo WordPress, e quer começar a desenvolver, principalmente se vem de outras linguagens, fica na dúvida; posso usar namespaces? Autoload? Usar WordPress Coding Standards ou PSRs?
Quando usar um Plugin e quando fazer meu código? O que é do tema e o que é do Plugin?
Precisamos de um barco maior introdução ao dimensionamento de aplicaçõesJackson F. de A. Mafra
Em um momento ou outro, todo desenvolvedor se depara com o mesmo problema - seu aplicativo começa a ficar mais lento, começa a cair e não está disponível.
Muitas vezes, isso se resume a muitos usuários, muitos dados armazenados - em outras palavras, um problema de escala.
Analisando uma gama de opções, desde escalonamento horizontal e vertical até cache, fragmentação e otimização, veremos abordagens de escalonamento que podem ser usadas em novas aplicações e também algumas que podem ser adaptadas retroativamente a aplicações existentes.
Hangout Tempo Real Eventos - ChatOps (ChatBots e DevOps) - Como bots podem ...Jackson F. de A. Mafra
Se formos resumir, podemos dizer que é “conversation-driven development”. Usando um bot com plugins e scripts, os times podem automatizar tarefas e colaborar, jogando fora os procedimentos repetitivos e economizando tempo.
Hangout Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...Jackson F. de A. Mafra
Vamos conhecer como iniciar o caminho a ser percorrido para que você adentre o mundo da plataforma que está disponível em centenas de milhões de dispositivos móveis em mais de 190 países, e, num breve futuro, alcance o grau de profissionalismo para aproveitar grandes oportunidades de mercado.
O JavaScript, durante muito tempo, não foi uma linguagem respeitada. Era considerada uma linguagem de amadores e, por de fato ser utilizada por muitos programadores inexperientes, gerava códigos mal-escritos. O JS mudou e moldou a web, deu muito mais poder aos desenvolvedores, e se estabeleceu permanentemente como a linguagem de scripts para a web.Hoje, o JavaScript se reinventou mais uma vez, e mais uma vez, está entregando nas mãos dos desenvolvedores o poder de mudar o desenvolvimento. Vamos conhecer como iniciar o caminho a ser percorrido para que você adentre o mundo da plataforma que está disponível em centenas de milhões de aplicações, e, num breve futuro, alcance o grau de profissionalismo para aproveitar grandes oportunidades de mercado
Chatops é a habilidade de interagir com a minha infraestrutura através de uma interface de texto. Mantendo um contexto linear com meus colegas de trabalho.
_ Chatops não é só executar comandos via chat, é sobre colaboração._
Quando a gente tem o primeiro contato com a expressão “chatbots”, pode ser levado a imaginar que sejam robôs que ficam conversando. Ou robôs chatos, quem sabe. Para os que vão um pouco mais fundo, pode vir a ideia de que se trata de uma plataforma de atendimento online protagonizada por um robô. Chatbots são sistemas de inteligência artificial utilizados para interagir com humanos em um número de tarefas e de possibilidades que, no momento, temos apenas uma vaga ideia de sua potencial variedade futura. Esses sistemas respondem a demandas, prestam orientações, esclarecem dúvidas, transmitem informações e conhecimento, fazem tarefas operacionais e transacionais, controlam processos e agilizam interações. Eles poderão também, por exemplo, substituir muitos dos aplicativos hoje existentes, já que são especialistas em soluções digitais específicas e online. Se você comprar online falando com eles, isso quer dizer que eles poderão também ser uma solução para todas as transações de e-commerce? Sim. Porque veja bem, eles podem procurar o produto que você deseja, encontrar e mostrar para você, que vai dizer se gosta ou não e, se gostar, você poderá dar um ok para que ele conclua a compra, acione seu cartão de crédito e, pronto, transação efetuada
http://conexaokinghost.com.br/
2. JACKSON FERREIRA DE ANDRADE MAFRA
Desenvolvedor há mais de 20 anos com background em projetos de e-commerce e real estate, desde
2009 com interesses focados para o desenvolvimento de interfaces móveis e aplicações MEAP.
Me chama lá...
http://about.me/jacksonfdam
http://linkedin.com/in/jacksonfdam
@jacksonfdam
3. O JavaScript, durante muito tempo, não foi uma linguagem respeitada. Era
considerada uma linguagem de amadores e, por de fato ser utilizada por
muitos programadores inexperientes, gerava códigos mal-escritos. O JS
mudou e moldou a web, deu muito mais poder aos desenvolvedores, e se
estabeleceu permanentemente como a linguagem de scripts para a web.
4. Hoje, o JavaScript se reinventou mais uma vez, e mais uma vez, está
entregando nas mãos dos desenvolvedores o poder de mudar o
desenvolvimento. Vamos conhecer como iniciar o caminho a ser percorrido
para que você adentre o mundo da plataforma que está disponível em
centenas de milhões de aplicações, e, num breve futuro, alcance o grau de
profissionalismo para aproveitar grandes oportunidades de mercado.
5. Javascript
O mundo do JavaScript tomou outra dimensão a partir do momento que o
ecossistema node/npm explodiu. Com ele, tanto a comunidade quanto as
empresas, começaram a enxergar o verdadeiro potencial da linguagem.
6. Javascript
Com o seu sucesso e crescimento, não demorou para que saísse uma nova
versão da especificação ECMAScript que levasse a linguagem para o
próximo nível. Foi então que saiu o ES6 (ou ECMAScript 2015, se preferir),
trazendo uma série de melhorias significativas.
7. Javascript
Para obter conhecimento abrangente ("domínio") de JavaScript, você
precisa estar familiarizado com a totalidade das especificações ECMAScript
sobre as quais se baseia.
JavaScript sua sintaxe, ES2017, melhores práticas, pitfalls, async/promises
8. Javascript
● Classes
● Object Methods
● Getters e Setters
● Dados privados
● Herança
● Parâmetros Padrão
● Um novo for: for.. of
● Declaração de valores, escopo e hoisting
● Uma nova maneira de extrair dados de
arrays e objetos
● Trabalhando com Strings
● Template literals
● Multi-line strings
● Funções
● Múltiplos retornos em uma função
9. Javascript
O uso de ES6 deixa a sintaxe do JavaScript muito mais elegante e de fácil
entendimento fora suas novas funcionalidades que adicionaram mais poder
a linguagem.
Frameworks novos ou antigos já estão nascendo ou sendo migrados para
essa nova sintaxe por isso recomendo fortemente que você tire um tempo
para estudar mais sobre ela.
11. Conhecendo o node.js
Segundo próprio site: “o node.js é uma plataforma construída sobre o
runtime do Chrome, para facilitar a construção de aplicativos escaláveis,
usando um modelo baseado em eventos, não bloqueável que o torna leve e
eficiente. Ideal para aplicativos com uso intensivo de dados, ou em tempo
real capaz de rodar em sistemas diversos”.
12. Conhecendo o node.js
Trocando em miúdos: trata-se um conjunto de bibliotecas, desenvolvidas
em C++, na forma de um aplicativo que permite a execução de código
escrito em javascript na linha de comando da sua máquina.
13. Conhecendo o node.js
Runtime do Chrome
Para ser simples o node.js baseia-se no V8, uma máquina virtual, em código
aberto, que está sendo exaustivamente desenvolvida pelo Google para o
Chrome. As ambições do V8 incluem: ser mais rápido, independente da
plataforma e mais estável que os engines, e máquinas virtuais, que andam
por ai, populando nossos navegadores e permitindo o uso de javascript em
páginas HTML.
14. Conhecendo o node.js
Não bloqueável
A web está evoluindo. Originalmente usávamos a web apenas para
consumir conteúdo estático. Fotos de gatos, por exemplo. Hoje usamos para
convivência, interação social em sites úteis como o Facebook, onde
podemos ver fotos de gatos, publicadas por pessoas que você respeitava,
quase em tempo real.
15. Conhecendo o node.js
Não bloqueável
Queremos o tempo real. Queremos conversar, ler e postar, todo o tempo e o
tempo todo. Qualquer um com experiência de desenvolvimento web sabe
que as requisições HTTP não foram feitas para este cenário. Na verdade,
não foram feitas nem para ver as fotos de gatos. O processo de requisição e
resposta utilizado pelo protocolo HTTP é lento, arcaico e baseado em
textos.
16. Conhecendo o node.js
Não bloqueável
Quando usamos uma linguagem de programação como o PHP, ou o Java,
sobre um servidor web como o Apache, com ou sem o Tomcat, cada
requisição gera um thread que, por sua vez, provoca a alocação de um
determinado espaço de memória.
17. Conhecendo o node.js
Não bloqueável
Digamos, apenas para ilustrar, que sejam 1,5Mbytes por conexão. Se assim
for, um servidor com 4 Gbytes, será capaz de suportar alguma coisa
próximo a 2600 clientes simultâneos. Parece bom? Não é. E olhe que eu
nem estou falando dos ciclos e mais ciclos de cpu que são gastos apenas
para ficar mudando de thread. Neste esquema, um aumento na demanda só
pode ser atendido com alterações na infraestrutura ou na arquitetura do
aplicativo. Em língua de gente: caro, muito caro.
18. Conhecendo o node.js
Não bloqueável
Na esperança de resolver este problema o node.js adota um único thread,
que não pode ser bloqueado por nenhuma requisição de entrada/saída, para
tratar todas as requisições que o servidor recebe. A ideia original, o node.js
foi criado por Ryan Dahl em 2009, pode ter sido a fomentadora de outras
iniciativas na mesma direção: como a tecnologia usada nos servidores web
mais modernos como o Nginx e o Thin e em projetos parecidos com o
node.js para o Python (Twisted) e para o Ruby (EventMachine). Nada como
a cópia e a adoção desenfreada de uma tecnologia para validar sua
utilização.
19. Conhecendo o node.js
Não bloqueável
O conceito por trás do nodel.js é simples: toda e qualquer requisição é
tratada pelo sistema servidor em um único thread, sem a alocação de
memória extra necessária e sem ciclos de cpu desperdiçados na alternância
de threads.
20. Conhecendo o node.js
Baseado em eventos
Formalmente, pode-se dizer que o node.js usa uma arquitetura baseada em
eventos de I/O não-blocante. I/O, ou E/S como se usa em português do
Brasil, é um termo que se refere a toda operação, feita entre a CPU e
qualquer outro dispositivo, por exemplo o disco. No caso da web, este termo
é aplicado a tarefas que serão executadas fora do thread principal, por
exemplo consultas a bancos de dados. Então, do ponto de vista do node.js,
operação de I/O é qualquer operação que precise ser executada fora do
thread principal.
21. Conhecendo o node.js
Baseado em eventos
O não-blocante indica que nenhuma operação de I/O irá interromper o
fluxo do thread principal. Ou seja, todas as requisições serão executadas, e
nenhuma delas será capaz de interromper o processamento das outras
enquanto termina de enviar dados.
22. Conhecendo o node.js
Baseado em eventos
O que o node.js faz é criar um laço onde toda e qualquer operação
assíncrona de entrada e saída gera um evento.
Cada chamada a uma função externa ao thread principal pendura uma
função de callback neste laço. Assim que o evento ocorre o callback
correspondente é chamado.
23. Conhecendo o node.js
Um desenvolvedor que trabalha com Node.js é um back-end ou um front-
end?
Nós trabalhamos com uma linguagem de programação, que pode ser usada
tanto no front, quanto no back e pronto.
24. Conhecendo o node.js
A partir de uma ideia tão legal quanto o Node.js, surgiu o io.js.
O io.js apareceu em Dezembro de 2014, a partir de um fork do Node feito
pelo Fedor Indutny (que pela lista do Node, foi o 112 contribuidor do Node),
mas que era um integrante core do time.
25. Conhecendo o node.js
A plataforma inteira do Node pode rodar em Linux, OS X ou FreeBSD e até
em Windows. Como várias linguagens, o Node também pode ser controlada
via linha de comando.
26. Conhecendo o node.js
Linux é padrão: é um dos sabores mais conhecidos do mercado. Um pouco
de file descriptors, conceitos de daemon, até mesmo saber como visualizar
seu processo e os recursos que ele está consumindo (aquele ps basicão, lsof,
curl, etc) e entender o Sistema Operacional é sempre bom.
27. Conhecendo o node.js
C++ é aquele diferencial, não essencial mas legal. C++ é tipo chocolate:
basicão, tá aí desde sempre e quase tudo é feito em cima dele.
É bom (não essencial) quando temos uma curiosidade para olhar o código do
V8, ver como é feita a libuv, criar uns binds marotos, fazer um dtrace e suas
probes, enfim, se der deu.
30. Node.js
● Consign: Para realizar autoload de módulos
● Body-parser: Para receber parâmetros de formulários trafegados em
requests.
● Express-validator: Para validação de dados
● Express-session: Para criação de variáveis de sessão
● Crypto: Para criptografia de dados utilizando MD5
● Connect-Multiparty: Para upload de arquivos