São utilizados 3 conceitos no dojo:
- Pair Programming: duas pessoas agindo em conjunto para programar. No caso do dojo, usamos um modelo no qual um é responsável por editar o código (piloto) e o outro ajuda dando palpites apenas (copiloto).
- TDD (Test Driven Development): como o nome diz, desenvolvimento orientado por testes. Isso significa que primeiro fazemos o teste automatizado com a expectativa de como a funcionalidade deve funcionar. Como a funcionalidade não está implementada, o teste falha (Red 🔴). Depois implementamos a funcionalidade, e rodamos o teste novamente. Se a funcionalidade foi implementada corretamente, os testes passam (Green ✅). Então podemos refatorar o código existente (Refactor 🛠) ou fazer um novo teste para continuar incrementando a funcionalidade até resolver o problema.
- Baby steps: ao implementar a funcionalidade, só implementamos o mínimo necessário para que os testes existentes passem. É como "dividir para conquistar", focamos em cada caso de cada vez de forma a incrementar gradativamente a solução
Aí vc pensa "que problema?". Bom, o dojo é uma espécie de recreação de programação, então escolhemos um problema pra tentarmos resolvê-lo programando. O problema não deve ser um problema "real" (coisas de trabalho ou faculdade, por exemplo) pra não ter aquela pressão pra terminar. Apesar de existir um problema a ser resolvido, o objetivo do dojo é aprendizado.
Resolver o problema é secundário, digamos... Bom, podemos dizer que durante o dojo, vamos descobrindo o algoritmo que resolve o problema escolhido.
Escolhemos a linguagem no dia, e ela deve atender a duas condições:
- Ter alguém "fluente" presente, para não ficarmos presos em questões de sintaxe e possamos focar na resolução do problema.
- Ambiente de testes podendo ser facilmente instalado na máquina de cada participante, para os testes, claro. Geralmente a pessoa "fluente" presente ajuda a preencher esse requisito.
O Dojo acontece toda quarta a partir de 18:30, em https://meet.jit.si/DojoRio
Texto adaptado do gist https://gist.github.com/hi-hi-ray/f10e9a70598bb8b40d87217644449a5f Slide com apresentação sobre o que é o Coding Dojo: https://slides.com/vitormattos/dojo/fullscreen