SlideShare une entreprise Scribd logo
1  sur  15
Coding Dojo
Segundo o http://codingdojo.org/:
   “Um Coding Dojo é um encontro onde um grupo de
   programadores se reúne para trabalhar em conjunto
   em um desafio de programação. Eles estão lá para se
   divertir, e, através de uma metodologia pragmática,
   melhorar suas habilidades de programação e de
   trabalho em grupo.”
Por que?
• Desenvolvedores não treinam!
• Disseminar conhecimento
• Buscar novos desafios e maneiras de resolvê-
  los
• A prática leva a perfeição
Princípios
• Aprendizado contínuo
• Ambiente Seguro
  – Não competitivo
  – Colaborativo
  – Inclusivo
• Ambiente para experimentar e testar
• Objetivo não é completar o desafio
• Sempre começa do zero
Regras Básicas - TDD
       Vermelho  Verde  Refatorar
Antes de fazer qualquer implementação, deve
 ser escrito um teste, que ao passar indica que
         a implementação está correta.
Regras Básicas - Baby Steps

Se um teste não está passando, você deve
escrever o código mais simples possível que faça o
teste passar. Quando for escrever um novo teste
para o mesmo método, escreva um teste que
teste só um pouquinho a mais da funcionalidade
desejada.
Regras Básicas - Pair Programming
A programação é feita em duplas. Cada dupla
tem um piloto e um co-piloto. Ambos pensam
em como passar no teste atual, mas só o
piloto digita. Cada par tem por volta de 5 a 10
minutos no seu turno.
Quando esse tempo acaba:
 – O piloto volta para a platéia
 – O co-piloto assume o lugar do piloto
 – Um novo co-piloto vem da platéia
Todos devem entender
O piloto e o co-piloto devem sempre explicar
em voz alta o que estão tentando fazer para
solucionar o problema. Qualquer um na
platéia pode pedir explicações se não
entender algum raciocínio.
Fases - Vermelha
 Pelo menos um teste não está passando. A
dupla da vez deve se concentrar em fazer o
teste passar. A platéia não deve falar nessa
fase, para não atrapalhar piloto e co-piloto.
Fases - Verde
 Os testes acabaram de ser rodados e todos
estão passando. Essa é a hora de quem está
na platéia dar sugestões para melhorar o
código.
Fases - Cinza
 O código foi modificado de acordo com as
sugestões, mas a bateria de testes ainda não
foi rodada. Deve-se evitar fazer grandes
modificações no código nessa fase.
Retrospectiva
•   O que aprendemos?
•   O que gostamos?
•   O que podemos melhorar?
•   Comentários?
FizzBuzz
Dada uma seqüência de números positivos maior que zero:
• Se o número for divisível por 3 escreve Fizz
• Se o número for divisível por 5 escreve Buzz
• Se o número for divisível por 3 e por 5 escreve FizzBuzz
• Se o número contiver o números 3 escreve Fizz
• Se o número contiver o números 5 escreve Buzz
• Se o número contiver os números 3 ou 5 escreve
  FizzBuzz
• Caso não atenda nenhuma das regras citadas, escreve o
  mesmo número passado.
FizzBuzz
Exemplo:
  Para a seqüência:
    1, 2, 3, 4, 5, 6

  A saída deve ser:
     1, 2, Fizz, 4, 5, Buzz
Mãos a obra!
Fonte
http://dojorio.org
http://pet.inf.ufsc.br/dojo/o-que-eh-dojo
http://codingdojo.org/cgi-bin/wiki.pl?KataFizzBuzz
http://dojo.dotnetarchitects.net/index.php/2010/02/27/re
   sultado-1-coding-dojo-net-architects

Contenu connexe

Tendances

Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador Pragmatico
Leonardo Fernandes
 
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Gabriel Rubens
 

Tendances (20)

Test Driven Development - Em busca de feedback util e concreto
Test Driven Development - Em busca de feedback util e concretoTest Driven Development - Em busca de feedback util e concreto
Test Driven Development - Em busca de feedback util e concreto
 
Programação Orientada a Gambiarra
Programação Orientada a GambiarraProgramação Orientada a Gambiarra
Programação Orientada a Gambiarra
 
Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador Pragmatico
 
Multidisciplinaridade - Desconstruindo especialistas e construindo times
Multidisciplinaridade - Desconstruindo especialistas e construindo timesMultidisciplinaridade - Desconstruindo especialistas e construindo times
Multidisciplinaridade - Desconstruindo especialistas e construindo times
 
POG nunca mais - SOLISC
POG nunca mais - SOLISCPOG nunca mais - SOLISC
POG nunca mais - SOLISC
 
Não existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu códigoNão existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu código
 
Coding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / InstruçõesCoding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / Instruções
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamento
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
 
Sete Passos Para Um Programador De Sucesso
Sete Passos Para Um Programador De SucessoSete Passos Para Um Programador De Sucesso
Sete Passos Para Um Programador De Sucesso
 
Desmistificando Design Patterns
Desmistificando Design PatternsDesmistificando Design Patterns
Desmistificando Design Patterns
 
Dojo com Processing
Dojo com ProcessingDojo com Processing
Dojo com Processing
 
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
 
Coding Dojo e TDD
Coding Dojo e TDDCoding Dojo e TDD
Coding Dojo e TDD
 
Coding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programandoCoding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programando
 
Lapidando ruby
Lapidando rubyLapidando ruby
Lapidando ruby
 
Eu não sou um "bom programador"!
Eu não sou um "bom programador"!Eu não sou um "bom programador"!
Eu não sou um "bom programador"!
 
Dynamic Types no C# 4.0
Dynamic Types no C# 4.0Dynamic Types no C# 4.0
Dynamic Types no C# 4.0
 
A saga do desenvolvedor java
A saga do desenvolvedor javaA saga do desenvolvedor java
A saga do desenvolvedor java
 
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
 

Similaire à Coding dojo

Tdc2013 - Trilha de Teste -
Tdc2013 - Trilha de Teste - Tdc2013 - Trilha de Teste -
Tdc2013 - Trilha de Teste -
Leonardo Galani
 
Dojo UECE - javaCE
Dojo UECE - javaCEDojo UECE - javaCE
Dojo UECE - javaCE
Yuri Adams
 

Similaire à Coding dojo (20)

DojoTuba 01
DojoTuba 01DojoTuba 01
DojoTuba 01
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Introdução ao Test Driven Development (TDD)
Introdução ao Test Driven Development (TDD)Introdução ao Test Driven Development (TDD)
Introdução ao Test Driven Development (TDD)
 
Coding Dojo no PUG - PE
Coding Dojo no PUG - PECoding Dojo no PUG - PE
Coding Dojo no PUG - PE
 
Coding Dojo .Net Architects - 30.01.2010
Coding Dojo .Net Architects - 30.01.2010Coding Dojo .Net Architects - 30.01.2010
Coding Dojo .Net Architects - 30.01.2010
 
DojoTuba: Coding Dojo - Tubarão, SC
DojoTuba: Coding Dojo - Tubarão, SCDojoTuba: Coding Dojo - Tubarão, SC
DojoTuba: Coding Dojo - Tubarão, SC
 
Tdc2013 - Trilha de Teste -
Tdc2013 - Trilha de Teste - Tdc2013 - Trilha de Teste -
Tdc2013 - Trilha de Teste -
 
1º coding dojo dnape
1º coding dojo dnape1º coding dojo dnape
1º coding dojo dnape
 
Coding Dojo em 10 Minutos!
Coding Dojo em 10 Minutos!Coding Dojo em 10 Minutos!
Coding Dojo em 10 Minutos!
 
Joinville Dojo 2010
Joinville Dojo   2010Joinville Dojo   2010
Joinville Dojo 2010
 
Coding dojo C# com NUnit
Coding dojo C# com NUnitCoding dojo C# com NUnit
Coding dojo C# com NUnit
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
O que é "Coding Dojo"?
O que é "Coding Dojo"?O que é "Coding Dojo"?
O que é "Coding Dojo"?
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In Tuba
 
O que é ser um bom programador?
O que é ser um bom programador?O que é ser um bom programador?
O que é ser um bom programador?
 
#safaDojo com Android
#safaDojo com Android#safaDojo com Android
#safaDojo com Android
 
#safaDojo com Android
#safaDojo com Android#safaDojo com Android
#safaDojo com Android
 
Coding Dojo Juiz de Fora
Coding Dojo Juiz de ForaCoding Dojo Juiz de Fora
Coding Dojo Juiz de Fora
 
Dojo UECE - javaCE
Dojo UECE - javaCEDojo UECE - javaCE
Dojo UECE - javaCE
 

Coding dojo

  • 1. Coding Dojo Segundo o http://codingdojo.org/: “Um Coding Dojo é um encontro onde um grupo de programadores se reúne para trabalhar em conjunto em um desafio de programação. Eles estão lá para se divertir, e, através de uma metodologia pragmática, melhorar suas habilidades de programação e de trabalho em grupo.”
  • 2. Por que? • Desenvolvedores não treinam! • Disseminar conhecimento • Buscar novos desafios e maneiras de resolvê- los • A prática leva a perfeição
  • 3. Princípios • Aprendizado contínuo • Ambiente Seguro – Não competitivo – Colaborativo – Inclusivo • Ambiente para experimentar e testar • Objetivo não é completar o desafio • Sempre começa do zero
  • 4. Regras Básicas - TDD Vermelho  Verde  Refatorar Antes de fazer qualquer implementação, deve ser escrito um teste, que ao passar indica que a implementação está correta.
  • 5. Regras Básicas - Baby Steps Se um teste não está passando, você deve escrever o código mais simples possível que faça o teste passar. Quando for escrever um novo teste para o mesmo método, escreva um teste que teste só um pouquinho a mais da funcionalidade desejada.
  • 6. Regras Básicas - Pair Programming A programação é feita em duplas. Cada dupla tem um piloto e um co-piloto. Ambos pensam em como passar no teste atual, mas só o piloto digita. Cada par tem por volta de 5 a 10 minutos no seu turno. Quando esse tempo acaba: – O piloto volta para a platéia – O co-piloto assume o lugar do piloto – Um novo co-piloto vem da platéia
  • 7. Todos devem entender O piloto e o co-piloto devem sempre explicar em voz alta o que estão tentando fazer para solucionar o problema. Qualquer um na platéia pode pedir explicações se não entender algum raciocínio.
  • 8. Fases - Vermelha Pelo menos um teste não está passando. A dupla da vez deve se concentrar em fazer o teste passar. A platéia não deve falar nessa fase, para não atrapalhar piloto e co-piloto.
  • 9. Fases - Verde Os testes acabaram de ser rodados e todos estão passando. Essa é a hora de quem está na platéia dar sugestões para melhorar o código.
  • 10. Fases - Cinza O código foi modificado de acordo com as sugestões, mas a bateria de testes ainda não foi rodada. Deve-se evitar fazer grandes modificações no código nessa fase.
  • 11. Retrospectiva • O que aprendemos? • O que gostamos? • O que podemos melhorar? • Comentários?
  • 12. FizzBuzz Dada uma seqüência de números positivos maior que zero: • Se o número for divisível por 3 escreve Fizz • Se o número for divisível por 5 escreve Buzz • Se o número for divisível por 3 e por 5 escreve FizzBuzz • Se o número contiver o números 3 escreve Fizz • Se o número contiver o números 5 escreve Buzz • Se o número contiver os números 3 ou 5 escreve FizzBuzz • Caso não atenda nenhuma das regras citadas, escreve o mesmo número passado.
  • 13. FizzBuzz Exemplo: Para a seqüência: 1, 2, 3, 4, 5, 6 A saída deve ser: 1, 2, Fizz, 4, 5, Buzz