SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
arquitetura – camada anticorrupção
          Anderson Parra de Paula




                                    Globalcode	
  –	
  Open4education
contato


      aparra



      @anderparra



      anderson parra




                       Globalcode	
  –	
  Open4education
política?




            #anticorrupcao
             Globalcode	
  –	
  Open4education
história de cautela

                       muralha da China
                           não era
                      impenetrável, mas
                          permitia o
                      comércio regulado
                         com vizinhos

                      custou uma fortuna


                            Globalcode	
  –	
  Open4education
o começo




           Globalcode	
  –	
  Open4education
princípios
•    criação de uma linguagem ubíqua
•    modelos ricos que refletem o negócio
•    arquitetura em camadas
•    interface reveladora de intenções


                   AFIRMAÇÕES



                                     Globalcode	
  –	
  Open4education
desenvolvimento




                  •    baixo custo
                  •    manutenível
                  •    flexível
                  •    reusável


                                Globalcode	
  –	
  Open4education
integrações




                 integrações com
              sistemas existentes é
              uma forma valiosa de
                   reutilização.


                      Globalcode	
  –	
  Open4education
sistemas legados




                   #fail
                    Globalcode	
  –	
  Open4education
respeite as diferenças




                          adoção de modelos
                         bem projetados pode
                          corromper um novo
                                modelo

                                Globalcode	
  –	
  Open4education
adoção cautelosa




                   Globalcode	
  –	
  Open4education
influências




              Globalcode	
  –	
  Open4education
Globalcode	
  –	
  Open4education
o bolso grita



                    estratégias de
                 isolamento devem
                ser balanceadas com
                 relação aos custos




                       Globalcode	
  –	
  Open4education
limites
•    identifique-os
•    calcule os custos
•    respeite-os
•    proteja seu domínio




                           Globalcode	
  –	
  Open4education
vazamentos




             comprometem a
              escalabilidade


                 Globalcode	
  –	
  Open4education
tradutor de dados




                    controlar o modelo é
                    diferente de proteger
                          o modelo.



                            Globalcode	
  –	
  Open4education
na prática
•  facades e adapters (Gama, 1995)
•  tradutores
•  mecanismo de comunicação




                     tradutor
         sistema A              sistema B

                                      Globalcode	
  –	
  Open4education
layers

         expandindo os limites
              de Evans

         isolamento aumenta
            a complexidade




                 Globalcode	
  –	
  Open4education
dura realidade




                 um monte de getters e
                 setters que pode deixar
                      seu projeto feio



                                Globalcode	
  –	
  Open4education
frameworks

 DOZER
 http://dozer.sourceforge.net




 https://github.com/douglasrodrigo/bfmapper


                                 Globalcode	
  –	
  Open4education
conclusão

•    proteja seu modelo
•    analise os custos
•    demarque os limites
•    evite vazamentos
•    cuidado com a complexidade
•    monitore o desempenho


                                  Globalcode	
  –	
  Open4education
obrigado, aproveitem o evento!



                        Globalcode	
  –	
  Open4education
dúvidas?


     aparra



     @anderparra



     anderson parra




                      Globalcode	
  –	
  Open4education

Mais conteúdo relacionado

Semelhante a Anticorrupção #TDC012

Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPCombatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPRodrigo Dos Santos
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceGlobalcode
 
Multicloud internorte 2019
Multicloud internorte 2019Multicloud internorte 2019
Multicloud internorte 2019Thiago Rodrigues
 
PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012Marco Antonio Maciel
 
Modularização em java com osgi
Modularização em java com osgiModularização em java com osgi
Modularização em java com osgiFilipe Portes
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Desafios e glórias na implementação de infra as code
Desafios e glórias na implementação de infra as codeDesafios e glórias na implementação de infra as code
Desafios e glórias na implementação de infra as codeEduardo Rozario
 
como esta a arquitetura do seu app?
como esta a arquitetura do seu app?como esta a arquitetura do seu app?
como esta a arquitetura do seu app?tdc-globalcode
 
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...tdc-globalcode
 
TDC2016SP - Dark Launching: Minimizando os riscos de alterações críticas em p...
TDC2016SP - Dark Launching: Minimizando os riscos de alterações críticas em p...TDC2016SP - Dark Launching: Minimizando os riscos de alterações críticas em p...
TDC2016SP - Dark Launching: Minimizando os riscos de alterações críticas em p...tdc-globalcode
 
TDC2018FLN | Trilha Agile - Transformacao Agil do Ponto de Vista do Dev Team
TDC2018FLN | Trilha Agile - Transformacao Agil do Ponto de Vista do Dev TeamTDC2018FLN | Trilha Agile - Transformacao Agil do Ponto de Vista do Dev Team
TDC2018FLN | Trilha Agile - Transformacao Agil do Ponto de Vista do Dev Teamtdc-globalcode
 
F# para devs c# tdc
F# para devs c#   tdcF# para devs c#   tdc
F# para devs c# tdcLucas Teles
 
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.  Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo. rodrigorahman
 
Design patterns e tecnologias para modularização em java tdc2014
Design patterns e tecnologias para modularização em java tdc2014Design patterns e tecnologias para modularização em java tdc2014
Design patterns e tecnologias para modularização em java tdc2014Filipe Portes
 
ArchUnit: testando a arquitetura de sua aplicação Java
ArchUnit: testando a arquitetura de sua aplicação JavaArchUnit: testando a arquitetura de sua aplicação Java
ArchUnit: testando a arquitetura de sua aplicação JavaFabio Domingues
 
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDK
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDKTDC2016SP - Evoluindo aplicações mobile com o Google VR SDK
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDKtdc-globalcode
 
TDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquiteturaTDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquiteturaEric Lemes
 

Semelhante a Anticorrupção #TDC012 (20)

Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPCombatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
 
Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open Source
 
Multicloud internorte 2019
Multicloud internorte 2019Multicloud internorte 2019
Multicloud internorte 2019
 
Python tdc2019
Python tdc2019 Python tdc2019
Python tdc2019
 
PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012
 
Modularização em java com osgi
Modularização em java com osgiModularização em java com osgi
Modularização em java com osgi
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Desafios e glórias na implementação de infra as code
Desafios e glórias na implementação de infra as codeDesafios e glórias na implementação de infra as code
Desafios e glórias na implementação de infra as code
 
como esta a arquitetura do seu app?
como esta a arquitetura do seu app?como esta a arquitetura do seu app?
como esta a arquitetura do seu app?
 
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...
 
TDC2016SP - Dark Launching: Minimizando os riscos de alterações críticas em p...
TDC2016SP - Dark Launching: Minimizando os riscos de alterações críticas em p...TDC2016SP - Dark Launching: Minimizando os riscos de alterações críticas em p...
TDC2016SP - Dark Launching: Minimizando os riscos de alterações críticas em p...
 
TDC2018FLN | Trilha Agile - Transformacao Agil do Ponto de Vista do Dev Team
TDC2018FLN | Trilha Agile - Transformacao Agil do Ponto de Vista do Dev TeamTDC2018FLN | Trilha Agile - Transformacao Agil do Ponto de Vista do Dev Team
TDC2018FLN | Trilha Agile - Transformacao Agil do Ponto de Vista do Dev Team
 
F# para devs c# tdc
F# para devs c#   tdcF# para devs c#   tdc
F# para devs c# tdc
 
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.  Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.
 
Design patterns e tecnologias para modularização em java tdc2014
Design patterns e tecnologias para modularização em java tdc2014Design patterns e tecnologias para modularização em java tdc2014
Design patterns e tecnologias para modularização em java tdc2014
 
ArchUnit: testando a arquitetura de sua aplicação Java
ArchUnit: testando a arquitetura de sua aplicação JavaArchUnit: testando a arquitetura de sua aplicação Java
ArchUnit: testando a arquitetura de sua aplicação Java
 
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDK
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDKTDC2016SP - Evoluindo aplicações mobile com o Google VR SDK
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDK
 
TDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquiteturaTDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquitetura
 

Último

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 

Último (8)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 

Anticorrupção #TDC012

  • 1. arquitetura – camada anticorrupção Anderson Parra de Paula Globalcode  –  Open4education
  • 2. contato aparra @anderparra anderson parra Globalcode  –  Open4education
  • 3. política? #anticorrupcao Globalcode  –  Open4education
  • 4. história de cautela muralha da China não era impenetrável, mas permitia o comércio regulado com vizinhos custou uma fortuna Globalcode  –  Open4education
  • 5. o começo Globalcode  –  Open4education
  • 6. princípios •  criação de uma linguagem ubíqua •  modelos ricos que refletem o negócio •  arquitetura em camadas •  interface reveladora de intenções AFIRMAÇÕES Globalcode  –  Open4education
  • 7. desenvolvimento •  baixo custo •  manutenível •  flexível •  reusável Globalcode  –  Open4education
  • 8. integrações integrações com sistemas existentes é uma forma valiosa de reutilização. Globalcode  –  Open4education
  • 9. sistemas legados #fail Globalcode  –  Open4education
  • 10. respeite as diferenças adoção de modelos bem projetados pode corromper um novo modelo Globalcode  –  Open4education
  • 11. adoção cautelosa Globalcode  –  Open4education
  • 12. influências Globalcode  –  Open4education
  • 14. o bolso grita estratégias de isolamento devem ser balanceadas com relação aos custos Globalcode  –  Open4education
  • 15. limites •  identifique-os •  calcule os custos •  respeite-os •  proteja seu domínio Globalcode  –  Open4education
  • 16. vazamentos comprometem a escalabilidade Globalcode  –  Open4education
  • 17. tradutor de dados controlar o modelo é diferente de proteger o modelo. Globalcode  –  Open4education
  • 18. na prática •  facades e adapters (Gama, 1995) •  tradutores •  mecanismo de comunicação tradutor sistema A sistema B Globalcode  –  Open4education
  • 19. layers expandindo os limites de Evans isolamento aumenta a complexidade Globalcode  –  Open4education
  • 20. dura realidade um monte de getters e setters que pode deixar seu projeto feio Globalcode  –  Open4education
  • 21. frameworks DOZER http://dozer.sourceforge.net https://github.com/douglasrodrigo/bfmapper Globalcode  –  Open4education
  • 22. conclusão •  proteja seu modelo •  analise os custos •  demarque os limites •  evite vazamentos •  cuidado com a complexidade •  monitore o desempenho Globalcode  –  Open4education
  • 23. obrigado, aproveitem o evento! Globalcode  –  Open4education
  • 24. dúvidas? aparra @anderparra anderson parra Globalcode  –  Open4education