Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Construindo Aplicações Reativas com Spring Weblux

Construindo Aplicações Reativas com Spring Weblux

Trabalhar com o conceito de reatividade nos nossos projetos tem sido cada vez mais o hype do momento! Nessa palestra vamos conhecer uma biblioteca e um framework que nos possibilitam representar programação reativa nas nossas linhas de código! Iremos ter como base o Java, usando o Spring Webflux e entender tudo isso num projeto real!

Será visto, falado e muito mais sobre JVM (Java Virtual Machine), no início e o quanto a otimização dele facilita nossa compreensão da reatividade em nossos sistemas.

Link do repositório com o código da API
https://github.com/anabneri/ReactivePokedex

Link da live: https://www.youtube.com/watch?v=ZtOJ54X0uIk

Ce3de8cc5e355e3ff5af97867086e0a9?s=128

Ana Beatriz

March 24, 2020
Tweet

Transcript

  1. Construindo aplicações reativas com Spring webflux @anabneri

  2. Ana Beatriz Neri Engenheira de Software - Itaú @anabneri /in/anabeatrizdev

    https:anabneri.github.io
  3. O que vamos ver nessa live: JVM - Java Virtual

    Machine O que é reatividade O que mudou a partir do Java 8 Arquitetura do Spring Webflux Ferramentas para começar Mãos na massa! - Criando nosso pokedex
  4. JVM - Java Virtual Machine

  5. JVM - arquitetura JavaC JVM JAVA BYTEC ODE @anabneri

  6. JVM - arquitetura @anabneri

  7. JVM - memória @anabneri

  8. O que é reatividade ?

  9. O que é reatividade ? São aplicações orientadas a um

    grande número de usuários, lidando com fluxos em vários momentos, um paradigma diferente de se pensar quando o assunto é: fluxo de dados Esses fluxos de dados, em sua grande maioria são assíncronos, ou seja, são eventos que acontecem em mais de um lugar e em momentos diferentes sem a produtividade do evento anterior @anabneri
  10. O que é reatividade ? Assíncrono significa duas tarefas ocorrendo

    ao mesmo tempo @anabneri Data Stream (fluxo de dados) é um dos pilares da reatividade que representa um conjunto de dados, e os dados são os eventos Dessa forma escrevemos códigos desacoplados Na reatividade é comum você ver o design pattern: Observer
  11. O que é reatividade ? Um Spoiler de como é

    um código simples no Spring Webflux, para demonstrar como criar um Data Stream a partir de um conjunto @anabneri
  12. O que é reatividade ? Manipulação de Streams Reativos @anabneri

  13. O que mudou a partir do Java8

  14. O que mudou no Java 8 Expressões Lambdas, pode ser

    usado com qualquer interface funcional. @anabneri fonte: https://blog.caelum.com.br/o-minimo-que-voce-deve-saber-de-java-8/
  15. O que mudou no Java 8 More Power com Streams

    para criá-las basta os elementos da lista chamar um método default .stream() @anabneri fonte: https://blog.caelum.com.br/o-minimo-que-voce-deve-saber-de-java-8/
  16. Arquitetura do Spring Webflux

  17. Arquitetura Spring Webflux @anabneri Request Canal Futuro Data Flows do

    Servidor Servidor Netty Fila de eventos Loop de eventos ClasseHandler Controller EndPoint Callback EndPoint Funcional evento 1 evento 2 evento N 1 - canal é criado 2 - registrado com um event loop 3 - está ativo 1 - Ivativo 2 - event loop não registrados 3 - fechado Cliente não-bloqueante 1 2 3 - 1 3 - 2 4 5 6
  18. Arquitetura Spring Webflux @anabneri Biblioteca de base - Project Reactor

    → Mono & Flux Servlet Container - Netty (pois ele trabalha com tempos de execução assíncrono)
  19. Ferramentas para começar :p

  20. @anabneri

  21. @anabneri BORA CRIAR UM POKEDEX

  22. @anabneri

  23. Referências: Micheli Brito https://elo7.dev/programacao-reativa/ GOTO 2019 • Reactive Spring •

    Josh Long - https://www.youtube.com/watch?v=1F10gr2pbvQ