Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
O que é Coding Dojo?O que é Coding Dojo?
TDD
(Desenvolvimento ...
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
TDDTDD
Test-Driven DevelopmentTest-Driven Development
● Fazer ...
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
Ferramentas de auxílioFerramentas de auxílio
(CLI)(CLI)
● tdae...
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
dose.pydose.py
Semáforo gráficoSemáforo gráfico
Oi! Eu sou
o d...
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
dose.pydose.py
EspecificaçãoEspecificação
● GUI de auxílio ao ...
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
dose.pydose.py
InstalaçãoInstalação
1)Instalar o Python 2.7 co...
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
Show me the code!Show me the code!
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
Software, testes, treinoSoftware, testes, treino
In software w...
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
DojosDojos
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
DojosDojos
● Code Kata
– Exercício com o objetivo de escrever ...
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
DojosDojos
● Prepared Kata
– Processo realizado antes
do event...
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
DojosDojos
● Kake
– Múltiplos katas em simultâneo
● Um único e...
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
DojosDojos
● Papéis
– Piloto: está no computador
● Todos devem...
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
DojosDojos
● Avaliação retrospectiva
=)
=(
● Discussão
– Como ...
Danilo J. S. Bellini
Leandro Facchinetti
2013-08-24 Dev Day
Obrigado!Obrigado!
Perguntas?
Fork me on
https://github.com/da...
Upcoming SlideShare
Loading in …5
×

(2013-08-24) [iMasters' Dev Day Adamantina] O que é Coding Dojo?

329 views

Published on

Apresentação introdutória sobre Coding Dojo, TDD e dose.py realizada em Adamantina - SP. A apresentação incluiu um curto Prepared Kata, cujo código encontra-se disponível em: https://github.com/danilobellini/fai_prepared_kata_2013 ; outros dois dojos (um Prepared Kata detalhado e um Randori Kata) foram realizados no mesmo dia.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
329
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

(2013-08-24) [iMasters' Dev Day Adamantina] O que é Coding Dojo?

  1. 1. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day O que é Coding Dojo?O que é Coding Dojo? TDD (Desenvolvimento Orientado a Testes) dose.py Origem e uso do Semáforo http://pypi.python.org/pypi/dose/ Dojos de programação
  2. 2. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day
  3. 3. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day TDDTDD Test-Driven DevelopmentTest-Driven Development ● Fazer o teste antes do código! ● Baby steps – No vermelho: ● Menor alteração que faça passar nos testes. – No verde: ● Inserir teste que quebre o código ● Refatorar Não é necessário ser ortodoxo! Não é problema inserir novos testes apenas para completar domínio, mesmo sem quebrar nada. Quebrou Passou Refatoração
  4. 4. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day Ferramentas de auxílioFerramentas de auxílio (CLI)(CLI) ● tdaemon – Polling no timestamp de alteração (stat) ● Apenas realiza o resultado depois de salvar – Feito para uso com o Python (nose, sphinx, etc.) ● watch – Periodicamente, realiza um comando ● 2 segundos, tipicamente – Permite visualizar o resultado depois de salvar – Comando efetuado com sh -c ou exec
  5. 5. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day dose.pydose.py Semáforo gráficoSemáforo gráfico Oi! Eu sou o dose.py
  6. 6. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day dose.pydose.py EspecificaçãoEspecificação ● GUI de auxílio ao TDD ● Agnóstico de linguagem – Escrito em Python – Comandos executados em um shell (permite pipes) ● Detecta quando o arquivo é salvo – Comunicação com o S.O. (pacote watchdog) ● Uso direto no diretório para ser monitorado dose.py comando – Para comandos complexos, usar aspas
  7. 7. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day dose.pydose.py InstalaçãoInstalação 1)Instalar o Python 2.7 com o pip sudo apt-get install python-pip 2)Instalar o wxPython sudo apt-get install python-wxgtk2.8 3)Instalar o dose.py com o pip sudo pip install dose Exemplos acima para Debian, Ubuntu e MINT
  8. 8. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day Show me the code!Show me the code!
  9. 9. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day Software, testes, treinoSoftware, testes, treino In software we do our practicing on the job, and that's why we make mistakes on the job. We need to find ways of splitting the practice from the profession. We need practice sessions. Dave Thomas
  10. 10. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day DojosDojos
  11. 11. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day DojosDojos ● Code Kata – Exercício com o objetivo de escrever código para treinar (Dave Thomas) ● Coding Dojo – Realização social do code kata (Laurent Bossavit) – Compartilhar conhecimento ● Metodologias ágeis (XP, Scrum) – Habilidades de projeto e escrita de código ● Sob TDD (Test-Driven Development) Definição e história
  12. 12. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day DojosDojos ● Prepared Kata – Processo realizado antes do evento – Apresentação (em TDD) ● Randori Kata – Pair programming – Todos participam no código ● Revezamento – Mais comum Tipos
  13. 13. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day DojosDojos ● Kake – Múltiplos katas em simultâneo ● Um único exercício, mas em diferentes condições – e.g. Linguagens diferentes ● Mais de um exercício – Um par (piloto-copiloto) por computador ● Revezamento, sem precisar haver “platéia” – Incomum ● Outras propostas / hibridismos Multi-Kata
  14. 14. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day DojosDojos ● Papéis – Piloto: está no computador ● Todos devem ser piloto ao menos uma vez – Co-piloto: está ao lado – Platéia: assiste ● No verde: pode opinar, sugere refatoração ● No vermelho: mantém-se em silêncio (*) ● Periodicamente os papéis são trocados – Tipicamente 7 minutos Randori (*) Dúvidas devem SEMPRE ser tiradas no instante em que são formuladas, independente do semáforo
  15. 15. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day DojosDojos ● Avaliação retrospectiva =) =( ● Discussão – Como melhorar? – O que ajudou? – O que prejudicou? ● Meio de expressão – Post-it – Debate Final
  16. 16. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day Obrigado!Obrigado! Perguntas? Fork me on https://github.com/danilobellini/dose Twitter: @danilobellini Facebook: www.facebook.com/djsbellini

×