SlideShare une entreprise Scribd logo
1  sur  71
Télécharger pour lire hors ligne
@bregaida
eduardo.bregaida@reservafacil.tur.br
BDD


Mas o que é DDD?
• DDD?
• DDD? • DDD?
• DDD? • DDD?
• DDD?
• DDD? • DDD?
• DDD? • DDD?
• DDD? • DDD?
• DDD? • DDD?
Havia um grande local cheio de aeronaves de um ricaço que morreu.
James, seu sobrinho, herdou este local e decidiu que queria abrir um negócio.
Uma loja de aeronaves.
E para isso era necessário um sistema...
E aí Bregaida,
beleza?
Estou precisando de sua
ajuda mais uma vez,
preciso de um sistema
para minha loja de
aeronaves.
Domain-Driven Design
Domain-Driven Design
Teremos Tupis,
Cherokees, Aeroboeiros,
Paulistinhas e outras
aeronaves, com diferentes
capacidades e potências.
?
Hum...
Então se eu fizer
CapacidadeTO estender de
AbstractAeronave, acho
que vai dar certo
?
Domain
Negócio Complexo
Problema Real
Pessoas
Linguagem de Negócio
Conversa
Sobre o domínio
Para criar um sistema
Conversa
Sobre o domínio
Para criar um sistema
Precisamos falar a mesma língua!
Língua Ubíqua
(Ubiquitous Language)
Temos hangares aqui
no nosso espaço, com
vários aviões
diferentes...
Nosso cliente chegará no Hangar e usará
o sistema para encontrar os melhores
aviões para sua necessidade.
Por exemplo, temos
aviões de diferentes cores
e capacidades.
Normalmente o
cliente também pode
escolher pela empresa
fabricante (Embraer,
Piper, Aviat, etc)
Aviao
-Cor
-Capacidade
- Fabricante
Cor
-Nome
Capacidade
(Potência,
Quantidade
Passageiros)
Fabricante
(Piper, Embraer,
Aviate, Boeing, etc)
Isso mesmo e nossos
aviões possuem um nome
e um prefixo que é sua
identificação no Brasil.
Aviao
-id
-Nome
-Cor
-Capacidade
- Fabricante
Cor
-Nome
Capacidade
(Potência,
Quantidade
Passageiros)
Fabricante
(Airbus, Embraer,
Piper, Boeing, etc)
Exatamente, mas
nosso cliente vai mesmo
querer pesquisar por
Fabricante e nome da
aeronave.
Aviao
-Prefixo
-Nome
-Cor
-Capacidade
- Fabricante
Cor
-Nome
Capacidade
(Potência,
Quantidade
Passageiros)
Repositório de
aviões
buscarPorNome
buscarPorFabricante
Fabricante
(Airbus, Embraer,
Piper, Boeing, etc)
Aliás outra busca que
quero é dado um avião
quero saber quais os
aviões com mesma
potência.
Creio que com esse
nosso repositório fica mais
fácil de saber, né?
Aviao
-Prefixo
-Nome
-Cor
-Capacidade
- Fabricante
-AviõesComMesmaPotência
Cor
-Nome
Capacidade
(Potência,
Quantidade
Passageiros)
Repositório de
aviões
buscarPorNome
buscarPorFabricante
Fabricante
(Airbus, Embraer,
Piper, Boeing, etc)
public class Aviao {
private Long id;
private String nome;
private Fabricante fabricante;
private Cor cor;
private Capacidade capacidade;
}
public class Fabricante {
private String nome;
//getters & setters
}
public class Cor {
private String nome;
//getters & setters
}
public class Capacidade {
private String potencia;
private String quantidadePassageiro;
//getters & setters
}
Repositório... BD? DAO?
O que nosso cliente quer?
public interface AviaoRepository {
List<Aviao> getTodosAvioes();
List<Aviao> getAvioesPorNome(String nome);
List<Aviao> getAvioesPorFabricante(Fabricante fabricante);
List<Aviao> getAvioesPorCapacidade(Capacidade capacidade);
Aviao getAviaoPorId(Long id);
}
Como implementar o
Repositório?
Poxa é
isso mesmo que eu
queria, está ficando
muito bom, porém esqueci
que quero hangarar juntas
as aeronaves com a
mesma potência.
Model
Código
Model
Código
public class Aviao {
//Códigos anteriores...
public boolean possuemMesmaPotencia(Aviao outroAviao){
return this.capacidade.getPotencia().equals(outroAviao.getPotencia());
}
}
Domain-Driven Design
• Voltado (driven) totalmente ao problema a ser resolvido (domain)
• Ubiquitous Language
• Funciona muito bem com Agile
• Modelos ricos (não anêmicos)
• Nomes importam!
Não importa a tecnologia. O que
importa é o domain.

http://image.slidesharecdn.com/bddextent20111029-111113010328-phpapp01/95/behavior-driven-development-pros-and-cons-5-728.jpg?cb=1321171622


Mas o que é BDD?
O que é BDD?
• Foca no comportamento do sistema;
• Visando desenvolvimento voltado a testes;
• Usam uma linguagem comum como visto no DDD;
• Beneficia os desenvolvedores e os usuários de negócio;
• Comporta vários cenários;
• Não apenas o que uma determinada função deve fazer;
• Possui aspectos do DDD e conceitos fundamentais do TDD.
Como fazer?
• Narrativa/Estória: (Nome)
• Para (Valor ao Negócio)
• Eu, como (Papel)
• Desejo poder realizar (Funcionalidade)
• Story: …
• In order to …
• As a …
• I want to …
• Narrativa/Estória: Busca Por Aeronaves
• Para meu sistema de vendas de aeronaves
• Eu, como cliente
• Desejo poder realizar buscas por nome das
Aeronaves
Exemplo
O que mais?
• Cenários: (Nome)
• Dado que (Estado inicial do sistema)
• Quando (Ação a ser realizada)
• Então (O que deve fazer após a ação)
• Scenario: …
• Given a …
• And …
• When …
• Then …
Exemplo
• Cenário I: Busca Aeronaves por nome
• Dado que meu cliente digite o nome da Aeronave
• Quando clicar no botão buscar
• Então o sistema deverá retornar todas as aeronaves disponíveis
com aquele nome.
TDD


Mas o que é TDD?
O que é TDD ou Test Driven Development?
• É uma técnica de desenvolvimento de software baseada em um ciclo curto de repetições.
• Escrevendo seus testes antes de escrever o código de produção.
• Ao escrever primeiro os testes:
• Garantimos uma boa qualidade no código (mínimo de sujeira e códigos esquecidos que
nunca serão utilizados).
• Garantimos o funcionamento do que está sendo implementado.
• Não precisamos saber tudo de uma vez, conforme eu desenvolvo um teste, crio e
implemento as classes que serão utilizadas.
TDD - Test Driven Development
• Escreva um teste que falhe;
• Faça-o passar da maneira mais simples possível;
• Refatore o código.
• É conhecido como CicloVermelho-Verde-Refatora
(Red - Green - Refactor).
BDD + TDD
Ferramentas
• ASSpec
• BDoc
• BDD para Python
• Behat - PHP
• Bumblebee - Extrai documentação de
testes escritos com JUnit.
• beanSpec - Java
• Calabash - Permite rodar testes em
aplicativos móveis para Android e iOS
• CppSpec - C++
• cfSpec - ColdFusion
• CSpec - C
• dSpec - Delphi
• Concordion - Ferramenta de testes
automatizados em Java para fazer BDD
usando textos em HTML para descrever
comportamentos.
• Cucumber - (Java, .NET, Ruby, Flex ou
qualquer aplicação web através do Watir
ou Selenium)
• easyb - Groovy/Java
• EasySpec - Groovy, usável em Java
• GSpec - Groovy
• Instinct - Java
• JavaStubs - Java - Framework de BDD
com suporte a Mock e Method Stubbing
• JBee - Java
• JBehave - Java
E muitas outras…
https://pt.wikipedia.org/wiki/Behavior_Driven_Development#Ferramentas
Referências
• https://en.wikipedia.org/wiki/Behavior-driven_development
• http://eduardopires.net.br/2012/06/ddd-tdd-bdd/
• http://sobrecodigo.com/wp-content/uploads/2011/03/tdd_bdd.png
• http://www.princiweb.com.br/blog/programacao/tdd/tdd-ddd-e-bdd-praticas-de-desenvolvimento.html
• http://www.hascode.com/2011/05/oh-jbehave-baby-behaviour-driven-development-using-jbehave/
• http://arnauld.github.io/incubation/jbehave-get-started/bdd-cycle-around-tdd-cycles.png
• https://anoopjshetty.files.wordpress.com/2012/03/bdd.png
• https://pt.wikipedia.org/wiki/Behavior_Driven_Development#Ferramentas
• http://www.ianbicking.org/
• http://docs.behat.org/en/v2.5/
• http://www.agileandart.com/2010/07/16/ddd-introducao-a-domain-driven-design/
• http://pt.slideshare.net/engenhariadesoftwareagil/ddd-domain-driven-design-5139191
• http://pt.slideshare.net/rponte/entendendo-domaindriven-design?related=1
• http://pt.slideshare.net/giovanni.bassi/programando-com-prazer-com-ddd?related=2
• http://pt.slideshare.net/eduardo.bregaida/ddd-linguagem?related=3
• http://www.infoq.com/br/domain-driven-design
• http://martinfowler.com/tags/domain%20driven%20design.html
• http://www.methodsandtools.com/archive/archive.php?id=97
Referências II• http://www.infoq.com/br/news/2014/09/dddx-evans-challenging
• https://skillsmatter.com/conferences/1776-ddd-exchange-2014
• https://en.wikipedia.org/wiki/Domain-driven_design
• http://martinfowler.com/bliki/UbiquitousLanguage.html
• http://www.buscape.com.br/domain-driven-design-atacando-as-complexidades-no-coracao-do-software-2-ed-2011-eric-
evans-8576085046.html#precos
• http://javawora.blogspot.com.br/2012/05/tdd-test-driven-development.html
• https://pt.wikipedia.org/wiki/Test_Driven_Development
• http://www.devmedia.com.br/test-driven-development-tdd-simples-e-pratico/18533
• http://tdd.caelum.com.br/
• http://tableless.com.br/tdd-por-que-usar/
• http://blog.thiagobelem.net/aprendendo-tdd-ou-desenvolvimento-orientado-a-testes/
• http://www.casadocodigo.com.br/products/livro-tdd
• http://agiledata.org/essays/tdd.html
• http://www.desenvolvimentoagil.com.br/xp/praticas/tdd/
• http://imasters.com.br/artigo/24242/desenvolvimento/principios-de-test-driven-development-tdd/
• http://www.johnidouglas.com.br/wp-content/uploads/2014/02/tdd-post.png
• http://pt.slideshare.net/IosifItkin/behavior-driven-development-pros-and-cons
• https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcTAodyDP0DbiRihtiJcWt_slpWtYj4ynHENiYutmBWyXIA4HUSm
Dúvidas?
Obrigado!Eduardo Bregaida - @bregaida
eduardo.bregaida@reservafacil.tur.br
http://javawora.blogspot.com.br

Contenu connexe

Tendances

Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVMWilliam Gouvea
 
Qualidade de Software em Micro Serviços
Qualidade de Software em Micro ServiçosQualidade de Software em Micro Serviços
Qualidade de Software em Micro ServiçosRafael Lima
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e WebdriverJúlio de Lima
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017Vitor Mattos
 
Cucumber: um breve review
Cucumber: um breve reviewCucumber: um breve review
Cucumber: um breve reviewLaís Berlatto
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
 
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
 
BDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemasBDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemasVitor Mattos
 
Menos reunião e mais post-it: Kanban na prática
Menos reunião e mais post-it: Kanban na práticaMenos reunião e mais post-it: Kanban na prática
Menos reunião e mais post-it: Kanban na práticaRodrigo Vieira
 
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPaulino Michelazzo
 
Desenvolvendo em Zend Framework: Ênfase no Zend_Db
Desenvolvendo em Zend Framework: Ênfase no Zend_DbDesenvolvendo em Zend Framework: Ênfase no Zend_Db
Desenvolvendo em Zend Framework: Ênfase no Zend_DbFlávio Lisboa
 

Tendances (20)

Grails
GrailsGrails
Grails
 
Código limpo
Código limpoCódigo limpo
Código limpo
 
PHP Além da universidade
PHP Além da universidadePHP Além da universidade
PHP Além da universidade
 
Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVM
 
BDD com Cucumber
BDD com CucumberBDD com Cucumber
BDD com Cucumber
 
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
 
Clean code em C#
Clean code em C#Clean code em C#
Clean code em C#
 
Qualidade de Software em Micro Serviços
Qualidade de Software em Micro ServiçosQualidade de Software em Micro Serviços
Qualidade de Software em Micro Serviços
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017
 
Cucumber: um breve review
Cucumber: um breve reviewCucumber: um breve review
Cucumber: um breve review
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
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
 
BDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemasBDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemas
 
Menos reunião e mais post-it: Kanban na prática
Menos reunião e mais post-it: Kanban na práticaMenos reunião e mais post-it: Kanban na prática
Menos reunião e mais post-it: Kanban na prática
 
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
 
Code Smells
Code SmellsCode Smells
Code Smells
 
Desenvolvendo em Zend Framework: Ênfase no Zend_Db
Desenvolvendo em Zend Framework: Ênfase no Zend_DbDesenvolvendo em Zend Framework: Ênfase no Zend_Db
Desenvolvendo em Zend Framework: Ênfase no Zend_Db
 
PHP, Mercado e Certificações
PHP, Mercado e CertificaçõesPHP, Mercado e Certificações
PHP, Mercado e Certificações
 

En vedette

Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agileAlini Rebonatto
 
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...Yan Justino
 
Refatoração: Como deixar seu código livre de maus Cheiros
Refatoração: Como deixar seu código livre de maus CheirosRefatoração: Como deixar seu código livre de maus Cheiros
Refatoração: Como deixar seu código livre de maus CheirosPedro Hos
 
Cultura da empresa - um problema na adoção ágil
Cultura da empresa - um problema na adoção ágilCultura da empresa - um problema na adoção ágil
Cultura da empresa - um problema na adoção ágilEduardo Bregaida
 
Java Generics - Quiz Questions
Java Generics - Quiz QuestionsJava Generics - Quiz Questions
Java Generics - Quiz QuestionsGanesh Samarthyam
 
Testes automatizados (2)
Testes automatizados (2)Testes automatizados (2)
Testes automatizados (2)cesarvianna
 
Software Architecture - Quiz Questions
Software Architecture - Quiz QuestionsSoftware Architecture - Quiz Questions
Software Architecture - Quiz QuestionsGanesh Samarthyam
 
BDD e TDD na prática com SpecFlow e Visual Studio 2012
BDD e TDD na prática com SpecFlow e Visual Studio 2012BDD e TDD na prática com SpecFlow e Visual Studio 2012
BDD e TDD na prática com SpecFlow e Visual Studio 2012Igor Abade
 
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOYan Justino
 
Introdução aos computadores e à World Wide Web
Introdução aos computadores e à World Wide WebIntrodução aos computadores e à World Wide Web
Introdução aos computadores e à World Wide WebCícero Quarto
 
Get into Functional Programming with Clojure
Get into Functional Programming with ClojureGet into Functional Programming with Clojure
Get into Functional Programming with ClojureJohn Stevenson
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)Renato Groff
 
Scrum - IMES 2013 (Remodelada)
Scrum - IMES 2013 (Remodelada)Scrum - IMES 2013 (Remodelada)
Scrum - IMES 2013 (Remodelada)Eduardo Bregaida
 
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...Caelum
 

En vedette (20)

DDD + BDD + TDD + Scrum
DDD + BDD + TDD + ScrumDDD + BDD + TDD + Scrum
DDD + BDD + TDD + Scrum
 
Spring MVC - QConSP
Spring MVC - QConSPSpring MVC - QConSP
Spring MVC - QConSP
 
UI Patterns
UI PatternsUI Patterns
UI Patterns
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
 
Refatoração: Como deixar seu código livre de maus Cheiros
Refatoração: Como deixar seu código livre de maus CheirosRefatoração: Como deixar seu código livre de maus Cheiros
Refatoração: Como deixar seu código livre de maus Cheiros
 
BDD - aula
BDD - aulaBDD - aula
BDD - aula
 
Behaviour Driven Development
Behaviour Driven DevelopmentBehaviour Driven Development
Behaviour Driven Development
 
Cultura da empresa - um problema na adoção ágil
Cultura da empresa - um problema na adoção ágilCultura da empresa - um problema na adoção ágil
Cultura da empresa - um problema na adoção ágil
 
Java Generics - Quiz Questions
Java Generics - Quiz QuestionsJava Generics - Quiz Questions
Java Generics - Quiz Questions
 
Testes automatizados (2)
Testes automatizados (2)Testes automatizados (2)
Testes automatizados (2)
 
Software Architecture - Quiz Questions
Software Architecture - Quiz QuestionsSoftware Architecture - Quiz Questions
Software Architecture - Quiz Questions
 
BDD e TDD na prática com SpecFlow e Visual Studio 2012
BDD e TDD na prática com SpecFlow e Visual Studio 2012BDD e TDD na prática com SpecFlow e Visual Studio 2012
BDD e TDD na prática com SpecFlow e Visual Studio 2012
 
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
 
Introdução aos computadores e à World Wide Web
Introdução aos computadores e à World Wide WebIntrodução aos computadores e à World Wide Web
Introdução aos computadores e à World Wide Web
 
Get into Functional Programming with Clojure
Get into Functional Programming with ClojureGet into Functional Programming with Clojure
Get into Functional Programming with Clojure
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)
 
DDD - Domain Driven Design
DDD - Domain Driven DesignDDD - Domain Driven Design
DDD - Domain Driven Design
 
Scrum - IMES 2013 (Remodelada)
Scrum - IMES 2013 (Remodelada)Scrum - IMES 2013 (Remodelada)
Scrum - IMES 2013 (Remodelada)
 
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
 

Similaire à Domain-Driven Design, TDD e BDD para desenvolvimento de sistema de locação de aeronaves

Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Railsismaelstahelin
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerGiovanni Kenji Shiroma
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...Renato Groffe
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...BrunoSouza617
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Renato Groff
 
Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Renato Groff
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
DDD manipulando mais que bytes
DDD   manipulando mais que bytesDDD   manipulando mais que bytes
DDD manipulando mais que bytesCarlos Maniero
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android EmbarcadoOdair Sousa
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017Fabio Janiszevski
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformanceFelipe Ribeiro
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPelliando dias
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open SourceEdgar Silva
 
Boas Práticas de Programação
Boas Práticas de ProgramaçãoBoas Práticas de Programação
Boas Práticas de ProgramaçãoCOTIC-PROEG (UFPA)
 
Boas Práticas de Programação
Boas Práticas de ProgramaçãoBoas Práticas de Programação
Boas Práticas de ProgramaçãoPaulo Souza
 

Similaire à Domain-Driven Design, TDD e BDD para desenvolvimento de sistema de locação de aeronaves (20)

Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Rails
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018
 
Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
DDD manipulando mais que bytes
DDD   manipulando mais que bytesDDD   manipulando mais que bytes
DDD manipulando mais que bytes
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android Embarcado
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
 
Boas Práticas de Programação
Boas Práticas de ProgramaçãoBoas Práticas de Programação
Boas Práticas de Programação
 
Boas Práticas de Programação
Boas Práticas de ProgramaçãoBoas Práticas de Programação
Boas Práticas de Programação
 

Plus de Eduardo Bregaida

Treinamento Agile com Scrum - V2
Treinamento Agile com Scrum - V2Treinamento Agile com Scrum - V2
Treinamento Agile com Scrum - V2Eduardo Bregaida
 
Treinamento Agile com scrum
Treinamento Agile com scrumTreinamento Agile com scrum
Treinamento Agile com scrumEduardo Bregaida
 
Aviação Civil LT sciensa
Aviação Civil  LT sciensaAviação Civil  LT sciensa
Aviação Civil LT sciensaEduardo Bregaida
 
Management 3.0 - V. Revisada
Management 3.0 - V. RevisadaManagement 3.0 - V. Revisada
Management 3.0 - V. RevisadaEduardo Bregaida
 
Cultura da Empresa - um problema na Adoção Ágil - Conexão Java
Cultura da Empresa - um problema na Adoção Ágil - Conexão JavaCultura da Empresa - um problema na Adoção Ágil - Conexão Java
Cultura da Empresa - um problema na Adoção Ágil - Conexão JavaEduardo Bregaida
 
Scrum - passos e desafios - agile tour
Scrum - passos e desafios - agile tourScrum - passos e desafios - agile tour
Scrum - passos e desafios - agile tourEduardo Bregaida
 
Refatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completaRefatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completaEduardo Bregaida
 
Falhas nos projetos é culpa da Cultura da Empresa e não das metodologias ágeis
Falhas nos projetos é culpa da Cultura da Empresa e não das metodologias ágeisFalhas nos projetos é culpa da Cultura da Empresa e não das metodologias ágeis
Falhas nos projetos é culpa da Cultura da Empresa e não das metodologias ágeisEduardo Bregaida
 
Cloud Computing Apresentacao Uscs Final
Cloud Computing Apresentacao Uscs FinalCloud Computing Apresentacao Uscs Final
Cloud Computing Apresentacao Uscs FinalEduardo Bregaida
 
Metodologias Ágeis no Estilo Dr House
Metodologias Ágeis no Estilo Dr HouseMetodologias Ágeis no Estilo Dr House
Metodologias Ágeis no Estilo Dr HouseEduardo Bregaida
 
Java E O Mercado De Trabalho
Java E O Mercado De TrabalhoJava E O Mercado De Trabalho
Java E O Mercado De TrabalhoEduardo Bregaida
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer FacesEduardo Bregaida
 

Plus de Eduardo Bregaida (20)

War Room - Bregaida - V1
War Room - Bregaida - V1War Room - Bregaida - V1
War Room - Bregaida - V1
 
Feedbacks - V1
Feedbacks - V1Feedbacks - V1
Feedbacks - V1
 
Treinamento Agile com Scrum - V2
Treinamento Agile com Scrum - V2Treinamento Agile com Scrum - V2
Treinamento Agile com Scrum - V2
 
Treinamento Agile com scrum
Treinamento Agile com scrumTreinamento Agile com scrum
Treinamento Agile com scrum
 
Aviação Civil LT sciensa
Aviação Civil  LT sciensaAviação Civil  LT sciensa
Aviação Civil LT sciensa
 
Management 3.0 - V. Revisada
Management 3.0 - V. RevisadaManagement 3.0 - V. Revisada
Management 3.0 - V. Revisada
 
Minha história
Minha históriaMinha história
Minha história
 
Aula 15 minutos
Aula 15 minutosAula 15 minutos
Aula 15 minutos
 
Cultura da Empresa - um problema na Adoção Ágil - Conexão Java
Cultura da Empresa - um problema na Adoção Ágil - Conexão JavaCultura da Empresa - um problema na Adoção Ágil - Conexão Java
Cultura da Empresa - um problema na Adoção Ágil - Conexão Java
 
Scrum - passos e desafios - agile tour
Scrum - passos e desafios - agile tourScrum - passos e desafios - agile tour
Scrum - passos e desafios - agile tour
 
Refatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completaRefatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completa
 
Falhas nos projetos é culpa da Cultura da Empresa e não das metodologias ágeis
Falhas nos projetos é culpa da Cultura da Empresa e não das metodologias ágeisFalhas nos projetos é culpa da Cultura da Empresa e não das metodologias ágeis
Falhas nos projetos é culpa da Cultura da Empresa e não das metodologias ágeis
 
Virus em Hw
Virus em HwVirus em Hw
Virus em Hw
 
JSF & REST
JSF & RESTJSF & REST
JSF & REST
 
Cloud Computing Apresentacao Uscs Final
Cloud Computing Apresentacao Uscs FinalCloud Computing Apresentacao Uscs Final
Cloud Computing Apresentacao Uscs Final
 
Metodologias Ágeis no Estilo Dr House
Metodologias Ágeis no Estilo Dr HouseMetodologias Ágeis no Estilo Dr House
Metodologias Ágeis no Estilo Dr House
 
Java E O Mercado De Trabalho
Java E O Mercado De TrabalhoJava E O Mercado De Trabalho
Java E O Mercado De Trabalho
 
Agile SCRUM
Agile SCRUMAgile SCRUM
Agile SCRUM
 
ApresentaçãO De Java
ApresentaçãO De JavaApresentaçãO De Java
ApresentaçãO De Java
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
 

Domain-Driven Design, TDD e BDD para desenvolvimento de sistema de locação de aeronaves