1º Coding Dojo
NodeSchool
# whoami
root Victor Perin
- Organizador do NodeSchool Campinas
- Desenvolvedor NodeJS
- Desculpem pelos vicios de linguagem
- ❤️ Cryptography | Cypherpunks | Bitcoins
- ❤️ JS | Docker | NoSQL
- ❤️ FP | Reactive | Async
- ❤️ DevOps
![](https://s3.amazonaws.com/media-p.slid.es/uploads/359304/images/4294083/perin.jpg)
Dojo: local de treinamento
Formatos
- Kata
- Randori
- Kake
Kata
(oponente invisível)
Existe um apresentador, que mostra a solução pronta, previamente desenvolvida.
O objetivo é que todos os participantes sejam capazes de reproduzir a solução alcançando o mesmo resultado, sendo permitido realizar interrupções para sanar dúvidas a qualquer momento.
Os códigos depois podem ser comparados e votados.
Esse é um formato competitivo.
Randori
(não há juiz, nem pontos)
Nesse formato todos participam do mesmo código, de forma colaborativa.
É proposto um problema que deve ser resolvido em uma única maquina, por pares. Os pares mudam a cada 5/10/15 minutos. O resto do time não pode ajudar mais.
Para esse formato é imprescindível a utilização de TDD e baby steps.
Vamos usar esse formato.
Kake
(treino vendado)
Esse formato é parecido com o Randori, mas com várias duplas codando ao mesmo tempo. De 5 em 5 minutos eles se misturam e pegam o código de outra dupla.
Vale tudo menos olhar o outro pc enquanto programa.
TDD
(Test driven development)
Idéia principal:
cobrir 100% sua aplicação de testes unitários.
Baby Steps Cycle
![](https://s3.amazonaws.com/media-p.slid.es/uploads/359304/images/4672414/1_BKWjjdtGyKwhlagGvZ2-_A.gif)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/359304/images/6356117/VainSickBarb-size_restricted.gif)
TDD Cycle
![](https://s3.amazonaws.com/media-p.slid.es/uploads/359304/images/6356107/1_IbHgZrKYCUSeIbL_PywObQ.png)
3 leis do TDD
- You can't write any production code until you have first writen a failing unit test.
- You can't write more of a unit test than is sufficient to fail.
- You can't write more production code than is sufficient to pass the currently failing unit test.
Pair Programming
Idéia principal:
escrever código em conjunto, de forma mais rápida e eficiente.
Pair Programming
A programação pareada é uma técnica de desenvolvimento de software ágil em que dois programadores trabalham juntos em uma estação de trabalho. Um deles, o "controlador", escreve o código, enquanto o outro, chamado de "observador", analisa cada linha do código.
Pédia, Wiki.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/359304/images/6356122/RapidYawningChickadee-size_restricted.gif)
Bad Example
Good Example
![](https://s3.amazonaws.com/media-p.slid.es/uploads/359304/images/6356124/1GFZO.gif)
O que faremos hoje,
cerebro?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/359304/images/6356126/pinky-brain-computer1.gif)
Regras
- De 5 em 5 mins
- O piloto volta para a plateia
- O co-piloto assume o lugar do piloto
- Alguem da plateia assume como co-piloto
- A plateia só ajuda quando todos os testes estiverem passando (verde).
- Todos devem entender a solução final, que será explicada pelo piloto e copiloto no final.
Tecnologias
não é magia
- VS Code
- Jest
- Wallaby.js
- EsHint
Slides em mãos
Regras, 3 leis, etc...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/359304/images/6356239/pasted-from-clipboard.png)
Coding Time!
Coding Dojo - NodeSchool
By Victor Perin
Coding Dojo - NodeSchool
- 572