SlideShare uma empresa Scribd logo
1 de 50
MVP Conf 2019
Refatorando para
Testes de Unidade
André
Baltieri
CEO do balta.io
Objetivos:
- Pegar um código “ruim” que funciona
- Refatorar
- Aplicar testes de unidade
MVP Conf 2019
Refatorando para
Testes de Unidade
mas antes de
começar...
Siga @balta.io
nas Redes Sociais
Receba nossas novidades
Newsletter
https://go.balta.io/cadastro
Cursos alinhados ao mercado
Cancele quando quiser
Seja nosso
aluno!
Confira os cursos: http://balta.io/cursos
Quem nunca ouviu
Estas frases...
- Testar toma muito tempo
- Testar é difícil
- Eu testo em produção
- Meu código não é testável
- Quanto custa um bug?
- Só usa testes com DDD
- Sem TDD não tem que testar
Conselhos que vão salvar
Sua vida...
- Reforce sempre o básico
- OOP é o caminho
Cenário
Vendas
Resumo
- Cenário de “Microsserviços”
- Um serviço de vendas
- Tem que:
- Obter os produtos
- Calcular o frete
- Verificar cupom de desconto
- Calcular total do pedido
- Gerar pedido
- Serviço mais importante do produto todo
Cenário
Vendas
Cenário
Vendas
Cenário
Vendas
Cenário
Vendas
Resumo
- O código funciona
- Tem vários anti-patterns
- Difícil visibilidade
- Baixo reuso
- Alto acoplamento
- Difícil manutenção
- Não tem testes
#1
Repository Pattern
#1
Repository Pattern
Resumo
- Provê uma abstração do acesso à dados
- Provê desacoplamento
- Pode ser mockado para testes
#1
Repository Pattern
Dependa e Abstração e não de implementação
#1
Repository Pattern
#testes
Testando os Repositórios
#1
Testando os Repositórios
Sobre Testes de Unidade
- Não podemos depender de banco
- Queries “na mão” não são testáveis
#1
Testando os Repositórios
#1
Testando os Repositórios
#2
Serviços Externos
#2
Serviços Externos
Resumo
- Não tem como serem testados
- Tem que haver uma contingência (Polly)
- Ficam nos repositórios para serem mockados
#2
Serviços Externos
Resumo
- Não tem como serem testados
- Tem que haver uma contingência (Polly)
- Ficam nos repositórios para serem mockados
#3
Regras de Negócio
#3
Regras de Negócio
Resumo
- Ficam na entidade (Domínio)
- Ou em um serviço (Domain Service) quando são compartilhadas
- Devem seguir o OCP
- Devem ser mais pura possível
- Devem ser fáceis de testar
- Evite muitos IFs nos Controllers
- Design By Contracts
- Flunt
#3
Regras de Negócio
#3
Regras de Negócio
Resumo
- Ficam na entidade (Domínio)
- Ou em um serviço (Domain Service) quando são compartilhadas
- Devem seguir o OCP
- Devem ser mais pura possível (POCO)
- Devem ser fáceis de testar
- Evite muitos IFs nos Controllers
- Design By Contracts
- Flunt
#3
Regras de Negócio
#testes
Regras de Negócio
#3
Regras de Negócio
#4
Refatorando o Pedido
#3
Regras de Negócio
#3
Regras de Negócio
#3
Regras de Negócio
#3
Regras de Negócio
#testes
Pedido
#3
Regras de Negócio
#3
Regras de Negócio
E ainda
tem mais...
E ainda
Tem muito mais...
Você também pode testar...
- Fluxos (Handlers com CQRS)
- Commands
- Fail Fast Validations
Valorize o BR
Utilize o Flunt!
https://github.com/andrebaltieri/flunt
Dúvidas?
hello@balta.io
Siga @balta.io
nas Redes Sociais
Material Selecionado
Cancele quando quiser
Cursos alinhados ao
mercado
Conteúdo novo TODO DIA!
https://balta.io
SEGUNDA
Vlog
TERÇA
Tutorial/Novas Aulas
QUARTA
Tutorial/Live Coding
QUINTA
Novas Aulas
SEXTA
Carreira Dev
SÁBADO
BaltaNews
Receba esta palestra
https://mvpconf.balta.i
o
hello@balta.io
https://balta.io/

Mais conteúdo relacionado

Mais procurados

Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Sérgio Vilar
 
7Masters - PWA - Publishing using Universal Windows Apps
7Masters - PWA - Publishing using Universal Windows Apps7Masters - PWA - Publishing using Universal Windows Apps
7Masters - PWA - Publishing using Universal Windows AppsGustavo Bellini Bigardi
 
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?tdc-globalcode
 
Construindo software em segurança com BDD
Construindo software em segurança com BDDConstruindo software em segurança com BDD
Construindo software em segurança com BDDHenrique Luz
 
TDC2013: ExtJS 4: Dicas e Melhores Practicas
TDC2013: ExtJS 4: Dicas e Melhores PracticasTDC2013: ExtJS 4: Dicas e Melhores Practicas
TDC2013: ExtJS 4: Dicas e Melhores PracticasLoiane Groner
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileElias Nogueira
 
Front-end o que é preciso saber?
Front-end o que é preciso saber?Front-end o que é preciso saber?
Front-end o que é preciso saber?João Praia
 
Uma introdução ao Powershell
Uma introdução ao PowershellUma introdução ao Powershell
Uma introdução ao Powershelldemetrioi
 
Memorias das trincheiras - 2015
Memorias das trincheiras - 2015Memorias das trincheiras - 2015
Memorias das trincheiras - 2015Elton Minetto
 
Suporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellSuporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellIgor Abade
 
Liberando versões de forma automatizada #dod14sjc
Liberando versões de forma automatizada #dod14sjcLiberando versões de forma automatizada #dod14sjc
Liberando versões de forma automatizada #dod14sjcJulio Arruda
 
Coders In Rio Summit - 2018
Coders In Rio Summit - 2018Coders In Rio Summit - 2018
Coders In Rio Summit - 2018Jaqueline Ramos
 

Mais procurados (19)

Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)
 
7Masters - PWA - Publishing using Universal Windows Apps
7Masters - PWA - Publishing using Universal Windows Apps7Masters - PWA - Publishing using Universal Windows Apps
7Masters - PWA - Publishing using Universal Windows Apps
 
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
 
Teste A/B
Teste A/BTeste A/B
Teste A/B
 
Polymer Starter Kit
Polymer Starter KitPolymer Starter Kit
Polymer Starter Kit
 
Introdução ao Azure Mobile Apps
Introdução ao Azure Mobile AppsIntrodução ao Azure Mobile Apps
Introdução ao Azure Mobile Apps
 
Construindo software em segurança com BDD
Construindo software em segurança com BDDConstruindo software em segurança com BDD
Construindo software em segurança com BDD
 
TDC2013: ExtJS 4: Dicas e Melhores Practicas
TDC2013: ExtJS 4: Dicas e Melhores PracticasTDC2013: ExtJS 4: Dicas e Melhores Practicas
TDC2013: ExtJS 4: Dicas e Melhores Practicas
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e Mobile
 
Bdd e ci
Bdd e ciBdd e ci
Bdd e ci
 
Front-end o que é preciso saber?
Front-end o que é preciso saber?Front-end o que é preciso saber?
Front-end o que é preciso saber?
 
Apresentação ISFramework
Apresentação ISFrameworkApresentação ISFramework
Apresentação ISFramework
 
Uma introdução ao Powershell
Uma introdução ao PowershellUma introdução ao Powershell
Uma introdução ao Powershell
 
O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!
 
Memorias das trincheiras - 2015
Memorias das trincheiras - 2015Memorias das trincheiras - 2015
Memorias das trincheiras - 2015
 
Suporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellSuporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShell
 
Liberando versões de forma automatizada #dod14sjc
Liberando versões de forma automatizada #dod14sjcLiberando versões de forma automatizada #dod14sjc
Liberando versões de forma automatizada #dod14sjc
 
Driver Flash para o ISFramework
Driver Flash para o ISFrameworkDriver Flash para o ISFramework
Driver Flash para o ISFramework
 
Coders In Rio Summit - 2018
Coders In Rio Summit - 2018Coders In Rio Summit - 2018
Coders In Rio Summit - 2018
 

Semelhante a Refatorando código para testes

13 dicas para colocar a operação da sua área de produtos nos trilhos
13 dicas para colocar a operação da sua área de produtos nos trilhos13 dicas para colocar a operação da sua área de produtos nos trilhos
13 dicas para colocar a operação da sua área de produtos nos trilhosProduct Camp Brasil
 
Metodologia Ágil para Projetos de BI - Pentaho Day
Metodologia Ágil para Projetos de BI - Pentaho DayMetodologia Ágil para Projetos de BI - Pentaho Day
Metodologia Ágil para Projetos de BI - Pentaho DayMarco Garcia
 
Engenharia de Software - Unimep/Pronatec - Aula 4
Engenharia de Software - Unimep/Pronatec - Aula 4Engenharia de Software - Unimep/Pronatec - Aula 4
Engenharia de Software - Unimep/Pronatec - Aula 4André Phillip Bertoletti
 
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)Joao Galdino Mello de Souza
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasKleitor Franklint Correa Araujo
 
Como criar uma cultura de qualidade de código
Como criar uma cultura de qualidade de código Como criar uma cultura de qualidade de código
Como criar uma cultura de qualidade de código João Lethier
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Igor Abade
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaRogerio Fontes
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
Gerando Resultados com Scrum: Scrum in a nutshell
Gerando Resultados com Scrum: Scrum in a nutshellGerando Resultados com Scrum: Scrum in a nutshell
Gerando Resultados com Scrum: Scrum in a nutshellDextra
 
Dev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsDev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsMichel Cordeiro
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
 
Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Thiago Barradas
 
Scrum para Desenvolvimento Interno e Produtos de Software
Scrum para Desenvolvimento Interno e Produtos de SoftwareScrum para Desenvolvimento Interno e Produtos de Software
Scrum para Desenvolvimento Interno e Produtos de SoftwareRodrigo Yoshima
 
Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...
Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...
Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...Bruno Bemfica
 

Semelhante a Refatorando código para testes (20)

13 dicas para colocar a operação da sua área de produtos nos trilhos
13 dicas para colocar a operação da sua área de produtos nos trilhos13 dicas para colocar a operação da sua área de produtos nos trilhos
13 dicas para colocar a operação da sua área de produtos nos trilhos
 
Metodologia Ágil para Projetos de BI - Pentaho Day
Metodologia Ágil para Projetos de BI - Pentaho DayMetodologia Ágil para Projetos de BI - Pentaho Day
Metodologia Ágil para Projetos de BI - Pentaho Day
 
Engenharia de Software - Unimep/Pronatec - Aula 4
Engenharia de Software - Unimep/Pronatec - Aula 4Engenharia de Software - Unimep/Pronatec - Aula 4
Engenharia de Software - Unimep/Pronatec - Aula 4
 
Ciclo de Vida Ágil em TI
Ciclo de Vida Ágil em TICiclo de Vida Ágil em TI
Ciclo de Vida Ágil em TI
 
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
BDD com Xamarin UI Test e Specflow
BDD com Xamarin UI Test e SpecflowBDD com Xamarin UI Test e Specflow
BDD com Xamarin UI Test e Specflow
 
Teste automatizados e tdd
Teste automatizados e tddTeste automatizados e tdd
Teste automatizados e tdd
 
Como criar uma cultura de qualidade de código
Como criar uma cultura de qualidade de código Como criar uma cultura de qualidade de código
Como criar uma cultura de qualidade de código
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Webinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros ÁgeisWebinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros Ágeis
 
Gerando Resultados com Scrum: Scrum in a nutshell
Gerando Resultados com Scrum: Scrum in a nutshellGerando Resultados com Scrum: Scrum in a nutshell
Gerando Resultados com Scrum: Scrum in a nutshell
 
Dev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsDev ops integração contínua com jenkins
Dev ops integração contínua com jenkins
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017
 
Scrum para Desenvolvimento Interno e Produtos de Software
Scrum para Desenvolvimento Interno e Produtos de SoftwareScrum para Desenvolvimento Interno e Produtos de Software
Scrum para Desenvolvimento Interno e Produtos de Software
 
Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...
Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...
Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...
 

Mais de Andre Baltieri

Clean Code - Promob DevDay 2022
Clean Code - Promob DevDay 2022Clean Code - Promob DevDay 2022
Clean Code - Promob DevDay 2022Andre Baltieri
 
31/08/2019 - Flutter Talks
31/08/2019 - Flutter Talks31/08/2019 - Flutter Talks
31/08/2019 - Flutter TalksAndre Baltieri
 
Criando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptCriando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptAndre Baltieri
 
Otimizando seu cenário de APIs
Otimizando seu cenário de APIsOtimizando seu cenário de APIs
Otimizando seu cenário de APIsAndre Baltieri
 
Turbine sua API no Microsoft Azure
Turbine sua API no Microsoft AzureTurbine sua API no Microsoft Azure
Turbine sua API no Microsoft AzureAndre Baltieri
 
Progressive Web Apps: Um novo mundo
Progressive Web Apps: Um novo mundoProgressive Web Apps: Um novo mundo
Progressive Web Apps: Um novo mundoAndre Baltieri
 
ASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsAndre Baltieri
 
Migrando para o Angular 2
Migrando para o Angular 2Migrando para o Angular 2
Migrando para o Angular 2Andre Baltieri
 
Otimizando eu JavaScript com TypeScript
Otimizando eu JavaScript com TypeScriptOtimizando eu JavaScript com TypeScript
Otimizando eu JavaScript com TypeScriptAndre Baltieri
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e AlémAndre Baltieri
 
Introdução ao Native Script
Introdução ao Native ScriptIntrodução ao Native Script
Introdução ao Native ScriptAndre Baltieri
 
Criando aplicações Híbridas com AngularJs, TypeScript e Material Design
Criando aplicações Híbridas com AngularJs, TypeScript e Material DesignCriando aplicações Híbridas com AngularJs, TypeScript e Material Design
Criando aplicações Híbridas com AngularJs, TypeScript e Material DesignAndre Baltieri
 
Trabalhando com WebHooks no ASP.NET
Trabalhando com WebHooks no ASP.NETTrabalhando com WebHooks no ASP.NET
Trabalhando com WebHooks no ASP.NETAndre Baltieri
 
Microsoft e o mundo do Desenvolvimento
Microsoft e o mundo do DesenvolvimentoMicrosoft e o mundo do Desenvolvimento
Microsoft e o mundo do DesenvolvimentoAndre Baltieri
 
5509 segurança em ap is
5509   segurança em ap is5509   segurança em ap is
5509 segurança em ap isAndre Baltieri
 
BaaS seguros com Firebase
BaaS seguros com FirebaseBaaS seguros com Firebase
BaaS seguros com FirebaseAndre Baltieri
 
5507 os principais design patterns
5507   os principais design patterns5507   os principais design patterns
5507 os principais design patternsAndre Baltieri
 

Mais de Andre Baltieri (20)

Clean Code - Promob DevDay 2022
Clean Code - Promob DevDay 2022Clean Code - Promob DevDay 2022
Clean Code - Promob DevDay 2022
 
31/08/2019 - Flutter Talks
31/08/2019 - Flutter Talks31/08/2019 - Flutter Talks
31/08/2019 - Flutter Talks
 
PWAs no seu Desktop
PWAs no seu DesktopPWAs no seu Desktop
PWAs no seu Desktop
 
Criando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptCriando APIs com Node e TypeScript
Criando APIs com Node e TypeScript
 
Otimizando seu cenário de APIs
Otimizando seu cenário de APIsOtimizando seu cenário de APIs
Otimizando seu cenário de APIs
 
Turbine sua API no Microsoft Azure
Turbine sua API no Microsoft AzureTurbine sua API no Microsoft Azure
Turbine sua API no Microsoft Azure
 
Progressive Web Apps: Um novo mundo
Progressive Web Apps: Um novo mundoProgressive Web Apps: Um novo mundo
Progressive Web Apps: Um novo mundo
 
ASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance Tips
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Migrando para o Angular 2
Migrando para o Angular 2Migrando para o Angular 2
Migrando para o Angular 2
 
BaaS com Firebase 3
BaaS com Firebase 3BaaS com Firebase 3
BaaS com Firebase 3
 
Otimizando eu JavaScript com TypeScript
Otimizando eu JavaScript com TypeScriptOtimizando eu JavaScript com TypeScript
Otimizando eu JavaScript com TypeScript
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e Além
 
Introdução ao Native Script
Introdução ao Native ScriptIntrodução ao Native Script
Introdução ao Native Script
 
Criando aplicações Híbridas com AngularJs, TypeScript e Material Design
Criando aplicações Híbridas com AngularJs, TypeScript e Material DesignCriando aplicações Híbridas com AngularJs, TypeScript e Material Design
Criando aplicações Híbridas com AngularJs, TypeScript e Material Design
 
Trabalhando com WebHooks no ASP.NET
Trabalhando com WebHooks no ASP.NETTrabalhando com WebHooks no ASP.NET
Trabalhando com WebHooks no ASP.NET
 
Microsoft e o mundo do Desenvolvimento
Microsoft e o mundo do DesenvolvimentoMicrosoft e o mundo do Desenvolvimento
Microsoft e o mundo do Desenvolvimento
 
5509 segurança em ap is
5509   segurança em ap is5509   segurança em ap is
5509 segurança em ap is
 
BaaS seguros com Firebase
BaaS seguros com FirebaseBaaS seguros com Firebase
BaaS seguros com Firebase
 
5507 os principais design patterns
5507   os principais design patterns5507   os principais design patterns
5507 os principais design patterns
 

Refatorando código para testes

Notas do Editor

  1. Abertura // instrudução
  2. Tela de apresentação do curso
  3. Conheça o instrutor