38
Conciliando uso de camadas com microservices

Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Conciliando uso de camadas

com microservices

Page 2: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Isaac Felisberto de SouzaEngenheiro de Software

...há “quase” 20 anosno mundo de desenvolvimento

Já somos mais de 100 na área de desenvolvimento!

Page 3: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Vocês já sabem as vantagens de microservices!!?

Page 4: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

E quem acha que existe desvantagens?

Page 5: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Monolito Microservices

Page 6: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Porque ao fragmentar,

algumas coisas NÃO

melhoram?

Page 7: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Muitas vezes fragmentamos, mas não melhoramos nossa forma de produzir código

Há vários motivos!

Page 8: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Um dos temas é o uso:

camadas

Page 9: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Descarta ou faz mau uso de camadas

Page 10: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Mas… em software,

O que são camadas?

Page 11: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

É usarMVC?

Page 12: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

MVC é um Design Pattern

Que apresenta uma forma de usar camadas

2, 3, N...

camadas

Page 13: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Existem camadas “físicas” e “lógicas”

Front-end Back-end Dados

Page 14: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Front-end Back-end Dados

camadas “físicas”

Page 15: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Front-end Back-end Dados

O que chamamos de microservice

Page 16: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Front-end Back-end Dados

O que chamamos de microservice

camadas “lógicas”

Page 17: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Controllers

ServicesInteractors

BusinessObjects

Serializers

Repositories Persistences

API’s integrations

Page 18: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Responsabilidades

Reutilização

Organização Sem isso,o que ocorre?

Page 19: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Vamos ver exemplos!

Page 20: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Caso de uso: Atualizar dados de um autor

● Validar se está ativo. Autor inativo não pode ser atualizado

● Atualizar dados do autor

● Gera histórico com usuário que atualizou

Page 21: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Controllers

Page 22: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Validação?

Dados de entrada

Recuperar dados

Dados de saída

Mais regras de negócio?

Page 23: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Serializers

Page 24: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Alteração de dados?

Atributo derivado?

Dar outro nome!

Expor o necessário!

Page 25: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Services

Page 26: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Só status error? Como a camada acima vai tratar?

Regras de negócio!

Definindo aqui dados de saída?

Page 27: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Models

Page 28: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Definindo aqui dados de saída?

Regras denegócio?

“atributo” derivado!

Page 29: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Em Java...

Page 30: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Regras denegócio!

Page 31: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Regras denegócio!

Page 32: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Definindo aqui dados de saída!

Page 33: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Boas práticas:

● Controllers

● Serializers

● Regra de negócio

● Erros de Design de código

● Clean Architecture !

● Persistência

Page 34: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Princípios e Padrões de Projeto

● SOLID

● Single responsibility principle

● GoF

● GRASP

● High cohesion, Low Coupling

● MVC: A API é a VIEW

● Business delegate, Facade

Page 35: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Quantos arquivos, classes, métodos serão modificados?

Seria possível trocar uma camada de forma fácil?

Page 36: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

É possível conciliar uso deCamadas comMicroservices

A principal mensagem é...

Page 37: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Camadas, é um dos temasna caminhada para...

Page 38: Conciliando uso de camadas · Caso de uso: Atualizar dados de um autor Validar se está ativo. Autor inativo não pode ser atualizado Atualizar dados do autor Gera histórico com

Obrigado! Isaac Felisberto de [email protected]

linkedin.com/in/isaacfsouza

Dúvidas?