Um Coding Dojo é um encontro onde programadores trabalham juntos em desafios de programação para se divertirem e melhorarem suas habilidades. Os princípios incluem aprendizado contínuo, ambiente seguro e colaborativo, e foco no experimentar e testar ao invés de completar o desafio.
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