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
 

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