SlideShare uma empresa Scribd logo
1 de 32
Monolito é coisa do passado!
Adeus ao código legado!
Eu vou construir microsserviços.
Fábio Domingues
Software Architect / Build Engineer @ UNIC / Softplan
Sobre mim
Fábio Domingues
● Arquiteto de Software @ UNIC / Softplan
● Desenvolvedor de Software desde 2009
● Bacharel em Engenharia da Computação
● Apaixonado por Sistemas Distribuídos
● Admirador de boas práticas de arquitetura e design de código.
E-mail: contato@fabiodomingues.com
LinkedIn: @dominguesfabio
Twitter: @f4biodomingues
Agenda
● Motivação
● Código ruim
● Código legado
● Monolito x Microsserviço
● Monolith First
“MONOLITÃO”
Monolito = Código Legado
Código Legado = Código Ruim
Microsserviços > Monolito
Código ruim
Código difícil de entender?
Um bom código deve ser autoexplicativo
“Good code should explain what it's doing. It should be boring to read. Everything
is perfectly obvious. That is good code.”
Robert Martin
“Qualquer tolo consegue escrever código que um computador entenda. Bons
programadores escrevem código que humanos possam entender.”
Martin Fowler
"Sempre codifique como se o programador que vai dar manutenção no seu
código fosse um serial killer maníaco que sabe onde você mora."
(autor desconhecido)
#FicaDica
Código legado
Código não escrito por você?
“Código legado é código sem testes.”
Michael C. Feathers
Entendido a diferença...
Sistemas Distribuídos
Consistency Availability
Partition
Tolerance
Teorema CAP
Criado por Dr. Eric Brewer, pela ACM (Association for Computing Machinery)
Assíncrono
Transação Distribuída
etc...
Mas lá na Netflix…
https://martinfowler.com/bliki/MonolithFirst.html
Bounded Contexts
Seja pragmático!
Valorize o que você tem!
Obrigado!

Mais conteúdo relacionado

Semelhante a Monolito é coisa do passado! Adeus ao código legado! Eu vou construir microsserviços.

FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquitetoFIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquitetoLeandro Daniel
 
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0tdc-globalcode
 
Micro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viuMicro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viuWagner Souza
 
SCTI 2014 - Dicas para tomadas de decisão seguras em front-end
SCTI 2014 - Dicas para tomadas de decisão seguras em front-endSCTI 2014 - Dicas para tomadas de decisão seguras em front-end
SCTI 2014 - Dicas para tomadas de decisão seguras em front-endRamon Bispo
 
Receita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndReceita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndLeonardo Balter
 
Esqueça a linguagem e vire um programador de verdade
Esqueça a linguagem e vire um programador de verdadeEsqueça a linguagem e vire um programador de verdade
Esqueça a linguagem e vire um programador de verdadePedro Chaves
 
Construindo Chatbots em Node.js
Construindo Chatbots em Node.jsConstruindo Chatbots em Node.js
Construindo Chatbots em Node.jsFelipe Pedroso
 
TDC 2011 (Florianópolis) - Entendendo a Arquitetura Evolucionária
TDC 2011 (Florianópolis) - Entendendo a Arquitetura EvolucionáriaTDC 2011 (Florianópolis) - Entendendo a Arquitetura Evolucionária
TDC 2011 (Florianópolis) - Entendendo a Arquitetura EvolucionáriaLeandro Daniel
 
Metodo trabalho remoto
Metodo trabalho remotoMetodo trabalho remoto
Metodo trabalho remotoMs SEO
 
Apresentação de Lançamento do RAD Studio XE7
Apresentação de Lançamento do RAD Studio XE7Apresentação de Lançamento do RAD Studio XE7
Apresentação de Lançamento do RAD Studio XE7Fernando Rizzato
 
Mono mecadocoorporativo-latino2010
Mono mecadocoorporativo-latino2010Mono mecadocoorporativo-latino2010
Mono mecadocoorporativo-latino2010Alessandro Binhara
 
Deixando de ser moleque com PHP
Deixando de ser moleque com PHPDeixando de ser moleque com PHP
Deixando de ser moleque com PHPVinícius Krolow
 
Programação Orienta a Objetos - Pense mais, escreva menos e melhor
Programação Orienta a Objetos - Pense mais, escreva menos e melhorProgramação Orienta a Objetos - Pense mais, escreva menos e melhor
Programação Orienta a Objetos - Pense mais, escreva menos e melhorRobson Alécio Somera
 

Semelhante a Monolito é coisa do passado! Adeus ao código legado! Eu vou construir microsserviços. (20)

FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquitetoFIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
 
Arquitetura Limpa em .NET Core
Arquitetura Limpa em .NET CoreArquitetura Limpa em .NET Core
Arquitetura Limpa em .NET Core
 
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
 
Clean Architecture com .NET Core
Clean Architecture com .NET CoreClean Architecture com .NET Core
Clean Architecture com .NET Core
 
Micro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viuMicro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viu
 
SCTI 2014 - Dicas para tomadas de decisão seguras em front-end
SCTI 2014 - Dicas para tomadas de decisão seguras em front-endSCTI 2014 - Dicas para tomadas de decisão seguras em front-end
SCTI 2014 - Dicas para tomadas de decisão seguras em front-end
 
Receita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndReceita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front End
 
Esqueça a linguagem e vire um programador de verdade
Esqueça a linguagem e vire um programador de verdadeEsqueça a linguagem e vire um programador de verdade
Esqueça a linguagem e vire um programador de verdade
 
Construindo Chatbots em Node.js
Construindo Chatbots em Node.jsConstruindo Chatbots em Node.js
Construindo Chatbots em Node.js
 
O que devo procurar em um code review
O que devo procurar em um code review O que devo procurar em um code review
O que devo procurar em um code review
 
TDC 2011 (Florianópolis) - Entendendo a Arquitetura Evolucionária
TDC 2011 (Florianópolis) - Entendendo a Arquitetura EvolucionáriaTDC 2011 (Florianópolis) - Entendendo a Arquitetura Evolucionária
TDC 2011 (Florianópolis) - Entendendo a Arquitetura Evolucionária
 
Metodo trabalho remoto
Metodo trabalho remotoMetodo trabalho remoto
Metodo trabalho remoto
 
Software
SoftwareSoftware
Software
 
Facetas do desenvolvedor agil
Facetas do desenvolvedor agilFacetas do desenvolvedor agil
Facetas do desenvolvedor agil
 
Apresentação de Lançamento do RAD Studio XE7
Apresentação de Lançamento do RAD Studio XE7Apresentação de Lançamento do RAD Studio XE7
Apresentação de Lançamento do RAD Studio XE7
 
Mono mecadocoorporativo-latino2010
Mono mecadocoorporativo-latino2010Mono mecadocoorporativo-latino2010
Mono mecadocoorporativo-latino2010
 
Zf campus party_2011
Zf campus party_2011Zf campus party_2011
Zf campus party_2011
 
Zf campus party_2011
Zf campus party_2011Zf campus party_2011
Zf campus party_2011
 
Deixando de ser moleque com PHP
Deixando de ser moleque com PHPDeixando de ser moleque com PHP
Deixando de ser moleque com PHP
 
Programação Orienta a Objetos - Pense mais, escreva menos e melhor
Programação Orienta a Objetos - Pense mais, escreva menos e melhorProgramação Orienta a Objetos - Pense mais, escreva menos e melhor
Programação Orienta a Objetos - Pense mais, escreva menos e melhor
 

Monolito é coisa do passado! Adeus ao código legado! Eu vou construir microsserviços.

Notas do Editor

  1. Toda a motivação desta palestra começou quando eu estava em uma sala de reunião Estávamos discutindo sobre uma solução, até que eu ouvi de um Desenvolvedor a frase "Se não fosse no MONOLITÃO seria mais fácil e rápido". Depois disso comecei a observar como as pessoas misturam conceitos de código legado e código ruim com monolito. Ou então algumas pessoas, acreditando cegamente que microsserviços é a solução para todas as soluções e projetos. A ideia desta apresentação é justamente esclarecer a diferença entre estes conceitos e também apresentar algo que pode lhes auxiliar na decisão entre escolher microserviços ou monolito em seus projetos.
  2. Associações...
  3. Tem também o extremismo de que qualquer código escrito é legado.
  4. Primeiro capitulo do livro Clean Code do Robert Martin.
  5. Código macarrônico
  6. Um bom código deve explicar o que está fazendo. Deve ser chato de ler. Tudo é perfeitamente óbvio. Isso é um bom código
  7. Ao ouvir histórias sobre equipes usando uma arquitetura de microsserviços, notei um padrão comum. Quase todas as histórias bem-sucedidas de microsserviço começaram com um monólito que ficou grande demais e foi quebrado Quase todos os casos em que ouvi falar de um sistema que foi construído como um sistema de microsserviço a partir do zero, acabou com sérios problemas.
  8. Os limites entre os serviços estão claros e estáveis? Qualquer refatoração de funcionalidade entre serviços é muito mais difícil do que em um monolito.
  9. Faça um balanço entre as opções, e escolha conforme sua necessidade e não conforme a “modinha”.
  10. Falar sobre os efeitos psicológicos, de tentar sempre se manter na hype.