Transcript
Page 1: TDC2016SP - Web Moderna além do Front-End com AngularJS

Modern Web Reatividade e

ReactJosé Barbosa | @kidchenko

Page 2: TDC2016SP - Web Moderna além do Front-End com AngularJS

@kidchenko

Fullstack na Lambda3;Agilista;Empreendedor digital;

Page 3: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 4: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 5: TDC2016SP - Web Moderna além do Front-End com AngularJS

Agenda• Reatividade;• Streams;• React;

Page 6: TDC2016SP - Web Moderna além do Front-End com AngularJS

Você já viu um manifesto?

Page 7: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 8: TDC2016SP - Web Moderna além do Front-End com AngularJS

Nós acreditamos que é necessária uma abordagem coerente para arquitetura de sistemas... ...nós queremos sistemas Responsivos, Resilientes, Elásticos e Orientados a Mensagens. Nós chamamos isso de Sistemas Reativos.

Essas transformações estão acontecendo por causa dos requisitos que mudaram drasticamente nos últimos anos... ...Hoje há aplicações em produção em todos os lugares, desde aplicativos móveis até aplicações na nuvem com clusters rodando milhares processadores multi-core. Geralmente os usuários esperam respostas em milisegundos e 100% de disponibilidade.

– The Reactive Manifesto

Page 9: TDC2016SP - Web Moderna além do Front-End com AngularJS

1995-2015

Page 10: TDC2016SP - Web Moderna além do Front-End com AngularJS

Os 4 princípios reativos

Page 11: TDC2016SP - Web Moderna além do Front-End com AngularJS

Responsive• Que responde em tempo hábil;• Uma aplicação responsiva é o que queremos;• Responsividade é impossível sem escalabilidade e

resiliência;

“A responsive system is quick to react to all users — under blue skies and grey skies — in order to ensure a consistently positive user experience.”

Page 12: TDC2016SP - Web Moderna além do Front-End com AngularJS

:c

Page 13: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 14: TDC2016SP - Web Moderna além do Front-End com AngularJS

Resilient• O sistema continua respondendo em caso de falha;• Qualquer sistema que não é resiliente ficará fora

do ar depois de uma falha;

Page 15: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 16: TDC2016SP - Web Moderna além do Front-End com AngularJS

Elastic/Scale• O sistema continua responsivo mesmo sob

variações de demanda;• Projetos que não tenham pontos de contenção ou

gargalos centrais;• Prove métricas relevantes e em tempo real;

Page 17: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 18: TDC2016SP - Web Moderna além do Front-End com AngularJS

Message Driven• Não bloqueante;• Programação Assíncronia;• Message-driven = event-driven, actor-based, ou

combinação das duas;

Page 19: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 20: TDC2016SP - Web Moderna além do Front-End com AngularJS

Event Driven

Page 21: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 22: TDC2016SP - Web Moderna além do Front-End com AngularJS

Programação Reativa é?

“Reactive programming is programming with asynchronous data streams.”

Page 23: TDC2016SP - Web Moderna além do Front-End com AngularJS

Stream?

“A stream is a sequence of ongoing events ordered in time”

Page 24: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 25: TDC2016SP - Web Moderna além do Front-End com AngularJS

“Anything can be a stream: variables, user inputs, properties, caches, data structures, etc.”

Page 26: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 27: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 28: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 29: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 30: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 31: TDC2016SP - Web Moderna além do Front-End com AngularJS

Streams e Collections“Streams are a series of elements emitted over time. The series potentially has no beginning and no end. Contrast that to arrays, which are a series of elements arranged in memory. Arrays have a beginning and an end”

Page 32: TDC2016SP - Web Moderna além do Front-End com AngularJS

Observables

• Não é nada novo;

Page 33: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 34: TDC2016SP - Web Moderna além do Front-End com AngularJS

Streams are like you twitter feed

Page 35: TDC2016SP - Web Moderna além do Front-End com AngularJS

Sistemas que usam Streams• Sistemas que normalmente usam abstrações

streams, ETL (extract, transform, load) ;• Sistemas CEP (complex event processing);• Sistemas de Reports/Analytics;• Movimento NoETL, similar ao NoSQL~Como a data

flui pelo Sistema; reports em real time, intenso uso de dados ~;

Page 36: TDC2016SP - Web Moderna além do Front-End com AngularJS

Streams vs Collections

Page 37: TDC2016SP - Web Moderna além do Front-End com AngularJS

• You can merge two streams. You can filter a stream to get another one that has only those events you are interested in. You can map data values from one stream to another new one.

• Streams são o centro da reatividade

Page 38: TDC2016SP - Web Moderna além do Front-End com AngularJS

Trends?

Page 39: TDC2016SP - Web Moderna além do Front-End com AngularJS

Porque react?• Declarativo;• V do MV*;• Componentes!!!• Virtual DOM

Page 40: TDC2016SP - Web Moderna além do Front-End com AngularJS

Virtual DOM• FAST! FAST! FAST!• Isomorfismo;

Page 41: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 42: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 43: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 44: TDC2016SP - Web Moderna além do Front-End com AngularJS

React Compoent Lifecycle

Page 45: TDC2016SP - Web Moderna além do Front-End com AngularJS

WebPackWebpack, code bundler

Page 46: TDC2016SP - Web Moderna além do Front-End com AngularJS

React Native

Page 47: TDC2016SP - Web Moderna além do Front-End com AngularJS

F8 App

Page 48: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 49: TDC2016SP - Web Moderna além do Front-End com AngularJS
Page 50: TDC2016SP - Web Moderna além do Front-End com AngularJS

Duvidas?Obrigado!


Top Related