SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Globalcode – Open4education
ArchUnit: testando a arquitetura de sua
aplicação Java
Fábio Domingues
Software Architect / Build Engineer @ Softplan
Globalcode – Open4education
Sobre mim
Fábio Domingues
• Arquiteto de Software @ 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
Globalcode – Open4education
• Reflexão sobre testes
• Motivação
• ArchUnit
• Exemplo
Agenda
Globalcode – Open4education
Qual tipo de testes você faz?
Globalcode – Open4education
E a arquitetura?
Globalcode – Open4education
Aspectos afetados
• Manutenibilidade
• Extensibilidade
• Reusabilidade
• Onboarding
• ....
Globalcode – Open4education
Globalcode – Open4education
Uso indevido
• System.out….
• e.printStackTrace();
• Logger
Globalcode – Open4education
Decisões arquiteturais
Como garantir que estão sendo seguidas ou que não
estão sendo violadas?
• ADR (Architecture Decision Records)
• Revisão de código
Mas então, como garantir?
Globalcode – Open4education
Como garantir?
Globalcode – Open4education
Testes automatizados!
Globalcode – Open4education
• Documentação
“Good code is its own best documentation”, Steve McConnell
• Evolutionary architectures
Fitness functions
• Continuous Integration
• Collective code ownership
Globalcode – Open4education
ArchUnit
Globalcode – Open4education
ThoughtWorks Radar 2019
Mai/2018 - AVALIE
Nov/2018 - EXPERIMENTE
Globalcode – Open4education
“ArchUnit is a free, simple and extensible library for checking the architecture
of your Java code using any plain Java unit test framework.
That is, ArchUnit can check dependencies between packages and classes,
layers and slices, check for cyclic dependencies and more. It does so by
analyzing given Java bytecode, importing all classes into a Java code
structure.”
ArchUnit Website (https://www.archunit.org)
Globalcode – Open4education
• Primeiro Release em 23/04/2017
• v0.10.2 (31/03/2019)
Globalcode – Open4education
Globalcode – Open4education
ArchUnit
• Just plain Java
• Operates on Java bytecode
• Executable as simple unit test
• Fluent API in code
• Fully extensible
Globalcode – Open4education
EXEMPLO
Globalcode – Open4education
Obrigado!
Fábio Domingues
E-mail: contato@fabiodomingues.com
LinkedIn: @dominguesfabio
Twitter: @f4biodomingues
ArchUnit: testando a arquitetura de sua aplicação Java

Mais conteúdo relacionado

Mais procurados

Como testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem práticaComo testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem práticaElias Nogueira
 
Arquitetura para entrega continua
Arquitetura para entrega continuaArquitetura para entrega continua
Arquitetura para entrega continuaLeonardo Kobus
 
Sucesso e derrota na Arquitetura Agile
Sucesso e derrota na Arquitetura AgileSucesso e derrota na Arquitetura Agile
Sucesso e derrota na Arquitetura AgileSérgio Giraldo
 
Usando Visão Computacional para Identificar Letras em Libras
Usando Visão Computacional para Identificar Letras em LibrasUsando Visão Computacional para Identificar Letras em Libras
Usando Visão Computacional para Identificar Letras em LibrasGabriel Schade Cardoso
 
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosTDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosRafael Chaves
 
TDC SP 2016 - Dos requisitos à implantação em uma palestra
TDC SP 2016 - Dos requisitos à implantação em uma palestraTDC SP 2016 - Dos requisitos à implantação em uma palestra
TDC SP 2016 - Dos requisitos à implantação em uma palestraRafael Chaves
 
Conheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live ShareConheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live ShareLetticia Nicoli
 
Obtendo métricas com TDD utilizando build automatizado e deploy no Azure
Obtendo métricas com TDD utilizando build automatizado e deploy no AzureObtendo métricas com TDD utilizando build automatizado e deploy no Azure
Obtendo métricas com TDD utilizando build automatizado e deploy no AzureMikaeri Ohana
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Developer Academy
 
Apresentação TDC2015
Apresentação TDC2015Apresentação TDC2015
Apresentação TDC2015Bruno Murawski
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...Rafael Chiavegatto
 

Mais procurados (15)

Como testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem práticaComo testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem prática
 
Arquitetura para entrega continua
Arquitetura para entrega continuaArquitetura para entrega continua
Arquitetura para entrega continua
 
Sucesso e derrota na Arquitetura Agile
Sucesso e derrota na Arquitetura AgileSucesso e derrota na Arquitetura Agile
Sucesso e derrota na Arquitetura Agile
 
Usando Visão Computacional para Identificar Letras em Libras
Usando Visão Computacional para Identificar Letras em LibrasUsando Visão Computacional para Identificar Letras em Libras
Usando Visão Computacional para Identificar Letras em Libras
 
Então, precisamos mesmo de QA em projetos Ágeis?
Então, precisamos mesmo de QA em projetos Ágeis?Então, precisamos mesmo de QA em projetos Ágeis?
Então, precisamos mesmo de QA em projetos Ágeis?
 
Jenkins com SonarQube
Jenkins com SonarQubeJenkins com SonarQube
Jenkins com SonarQube
 
Programação Funcional usando F#
Programação Funcional usando F#Programação Funcional usando F#
Programação Funcional usando F#
 
Arquitetura Limpa em .NET Core
Arquitetura Limpa em .NET CoreArquitetura Limpa em .NET Core
Arquitetura Limpa em .NET Core
 
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosTDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
 
TDC SP 2016 - Dos requisitos à implantação em uma palestra
TDC SP 2016 - Dos requisitos à implantação em uma palestraTDC SP 2016 - Dos requisitos à implantação em uma palestra
TDC SP 2016 - Dos requisitos à implantação em uma palestra
 
Conheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live ShareConheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live Share
 
Obtendo métricas com TDD utilizando build automatizado e deploy no Azure
Obtendo métricas com TDD utilizando build automatizado e deploy no AzureObtendo métricas com TDD utilizando build automatizado e deploy no Azure
Obtendo métricas com TDD utilizando build automatizado e deploy no Azure
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
 
Apresentação TDC2015
Apresentação TDC2015Apresentação TDC2015
Apresentação TDC2015
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
 

Semelhante a ArchUnit: testando a arquitetura de sua aplicação Java

Arquitetura de software em times ágeis
Arquitetura de software em times ágeisArquitetura de software em times ágeis
Arquitetura de software em times ágeisSérgio Giraldo
 
Automação de testes em projetos ágeis
Automação de testes em projetos ágeisAutomação de testes em projetos ágeis
Automação de testes em projetos ágeisCristiano Caetano
 
[TDC Floripa 2016] Facilitando Concepções de Produtos de TI de maneira colabo...
[TDC Floripa 2016] Facilitando Concepções de Produtos de TI de maneira colabo...[TDC Floripa 2016] Facilitando Concepções de Produtos de TI de maneira colabo...
[TDC Floripa 2016] Facilitando Concepções de Produtos de TI de maneira colabo...Guilherme Motta
 
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
 
Automacao de testes em .NET? Keep Calm and Just do It
Automacao de testes em .NET? Keep Calm and Just do ItAutomacao de testes em .NET? Keep Calm and Just do It
Automacao de testes em .NET? Keep Calm and Just do Ittdc-globalcode
 
Agileze seus testes com automacao e grid
Agileze seus testes com automacao e gridAgileze seus testes com automacao e grid
Agileze seus testes com automacao e gridElias Nogueira
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterEdlaine Zamora
 
Arquiteturaentregacontinuav2 160513025436
Arquiteturaentregacontinuav2 160513025436Arquiteturaentregacontinuav2 160513025436
Arquiteturaentregacontinuav2 160513025436Fabiano Modos
 
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
 
5 dúvidas frequentes ao iniciar o método Kanban
5 dúvidas frequentes ao iniciar o método Kanban5 dúvidas frequentes ao iniciar o método Kanban
5 dúvidas frequentes ao iniciar o método KanbanCarlos Eduardo Polegato
 
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
 
Utilizando a API do Roslyn, o novo compilador do C#
Utilizando a API do Roslyn, o novo compilador do C#Utilizando a API do Roslyn, o novo compilador do C#
Utilizando a API do Roslyn, o novo compilador do C#Paulo Cesar Ortins Brito
 
Automação de Teste para iOS e Android com Appium
Automação de Teste para iOS e Android com AppiumAutomação de Teste para iOS e Android com Appium
Automação de Teste para iOS e Android com AppiumElias Nogueira
 
Tecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolso
Tecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolsoTecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolso
Tecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolsoRodrigo Calumby
 
Fisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.comFisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.comRobson Chikasawa
 
TDC 2014 Floripa - Melhorando sua Estratégia de Testes Automatizados
TDC 2014 Floripa - Melhorando sua Estratégia de Testes AutomatizadosTDC 2014 Floripa - Melhorando sua Estratégia de Testes Automatizados
TDC 2014 Floripa - Melhorando sua Estratégia de Testes AutomatizadosStefan Teixeira
 
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...tdc-globalcode
 

Semelhante a ArchUnit: testando a arquitetura de sua aplicação Java (20)

Arquitetura de software em times ágeis
Arquitetura de software em times ágeisArquitetura de software em times ágeis
Arquitetura de software em times ágeis
 
Automação de testes em projetos ágeis
Automação de testes em projetos ágeisAutomação de testes em projetos ágeis
Automação de testes em projetos ágeis
 
[TDC Floripa 2016] Facilitando Concepções de Produtos de TI de maneira colabo...
[TDC Floripa 2016] Facilitando Concepções de Produtos de TI de maneira colabo...[TDC Floripa 2016] Facilitando Concepções de Produtos de TI de maneira colabo...
[TDC Floripa 2016] Facilitando Concepções de Produtos de TI de maneira colabo...
 
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
 
Automacao de testes em .NET? Keep Calm and Just do It
Automacao de testes em .NET? Keep Calm and Just do ItAutomacao de testes em .NET? Keep Calm and Just do It
Automacao de testes em .NET? Keep Calm and Just do It
 
Agileze seus testes com automacao e grid
Agileze seus testes com automacao e gridAgileze seus testes com automacao e grid
Agileze seus testes com automacao e grid
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
 
Arquiteturaentregacontinuav2 160513025436
Arquiteturaentregacontinuav2 160513025436Arquiteturaentregacontinuav2 160513025436
Arquiteturaentregacontinuav2 160513025436
 
Ppt tdc potato
Ppt tdc potatoPpt tdc potato
Ppt tdc potato
 
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
 
5 dúvidas frequentes ao iniciar o método Kanban
5 dúvidas frequentes ao iniciar o método Kanban5 dúvidas frequentes ao iniciar o método Kanban
5 dúvidas frequentes ao iniciar o método Kanban
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
 
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
 
jCompany X Geradores de Códigos
jCompany X Geradores de CódigosjCompany X Geradores de Códigos
jCompany X Geradores de Códigos
 
Utilizando a API do Roslyn, o novo compilador do C#
Utilizando a API do Roslyn, o novo compilador do C#Utilizando a API do Roslyn, o novo compilador do C#
Utilizando a API do Roslyn, o novo compilador do C#
 
Automação de Teste para iOS e Android com Appium
Automação de Teste para iOS e Android com AppiumAutomação de Teste para iOS e Android com Appium
Automação de Teste para iOS e Android com Appium
 
Tecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolso
Tecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolsoTecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolso
Tecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolso
 
Fisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.comFisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.com
 
TDC 2014 Floripa - Melhorando sua Estratégia de Testes Automatizados
TDC 2014 Floripa - Melhorando sua Estratégia de Testes AutomatizadosTDC 2014 Floripa - Melhorando sua Estratégia de Testes Automatizados
TDC 2014 Floripa - Melhorando sua Estratégia de Testes Automatizados
 
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
 

ArchUnit: testando a arquitetura de sua aplicação Java