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

Embed Size (px)

DESCRIPTION

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.

Citation preview

  • 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 Semforo http://pypi.python.org/pypi/dose/ Dojos de programao

2. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day 3. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day TDDTDD Test-Driven DevelopmentTest-Driven Development Fazer o teste antes do cdigo! Baby steps No vermelho: Menor alterao que faa passar nos testes. No verde: Inserir teste que quebre o cdigo Refatorar No necessrio ser ortodoxo! No problema inserir novos testes apenas para completar domnio, mesmo sem quebrar nada. Quebrou Passou Refatorao 4. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day Ferramentas de auxlioFerramentas de auxlio (CLI)(CLI) tdaemon Polling no timestamp de alterao (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. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day dose.pydose.py Semforo grficoSemforo grfico Oi! Eu sou o dose.py 6. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day dose.pydose.py EspecificaoEspecificao GUI de auxlio ao TDD Agnstico de linguagem Escrito em Python Comandos executados em um shell (permite pipes) Detecta quando o arquivo salvo Comunicao com o S.O. (pacote watchdog) Uso direto no diretrio para ser monitorado dose.py comando Para comandos complexos, usar aspas 7. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day dose.pydose.py InstalaoInstalao 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. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day Show me the code!Show me the code! 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. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day DojosDojos 11. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day DojosDojos Code Kata Exerccio com o objetivo de escrever cdigo para treinar (Dave Thomas) Coding Dojo Realizao social do code kata (Laurent Bossavit) Compartilhar conhecimento Metodologias geis (XP, Scrum) Habilidades de projeto e escrita de cdigo Sob TDD (Test-Driven Development) Definio e histria 12. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day DojosDojos Prepared Kata Processo realizado antes do evento Apresentao (em TDD) Randori Kata Pair programming Todos participam no cdigo Revezamento Mais comum Tipos 13. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day DojosDojos Kake Mltiplos katas em simultneo Um nico exerccio, mas em diferentes condies e.g. Linguagens diferentes Mais de um exerccio Um par (piloto-copiloto) por computador Revezamento, sem precisar haver platia Incomum Outras propostas / hibridismos Multi-Kata 14. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day DojosDojos Papis Piloto: est no computador Todos devem ser piloto ao menos uma vez Co-piloto: est ao lado Platia: assiste No verde: pode opinar, sugere refatorao No vermelho: mantm-se em silncio (*) Periodicamente os papis so trocados Tipicamente 7 minutos Randori (*) Dvidas devem SEMPRE ser tiradas no instante em que so formuladas, independente do semforo 15. Danilo J. S. Bellini Leandro Facchinetti 2013-08-24 Dev Day DojosDojos Avaliao retrospectiva =) =( Discusso Como melhorar? O que ajudou? O que prejudicou? Meio de expresso Post-it Debate Final 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