(2013-07-05) [fisl] semáforo gráfico dose para tdd em dojos
DESCRIPTION
Slides da apresentação realizada no fisl no dia 2013-07-05. A apresentação incluiu um Prepared Kata, cujo código encontra-se disponível em: https://github.com/danilobellini/fisl14TRANSCRIPT
Danilo J. S. Bellinifisl 14
2013-07-05
Semáforo gráfico Semáforo gráfico dosedose para para TDDTDD em em dojosdojos
TDD(Desenvolvimento Orientado a Testes)
dose.pyOrigem e uso do Semáforo
http://pypi.python.org/pypi/dose/
Dojos de programação(baseado nos dojos de São Paulo em 2012-2013)
Danilo J. S. Bellinifisl 14
2013-07-05
Danilo J. S. Bellinifisl 14
2013-07-05
TDDTDDTest-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
Danilo J. S. Bellinifisl 14
2013-07-05
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
Danilo J. S. Bellinifisl 14
2013-07-05
dose.pydose.pySemáforo gráficoSemáforo gráfico
Oi! Eu souo dose.py
Danilo J. S. Bellinifisl 14
2013-07-05
dose.pydose.pyEspecificaçã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 monitoradodose.py comando
– Para comandos complexos, usar aspas
Danilo J. S. Bellinifisl 14
2013-07-05
dose.pydose.pyInstalaçã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
Danilo J. S. Bellinifisl 14
2013-07-05
Show me the code!Show me the code!
Danilo J. S. Bellinifisl 14
2013-07-05
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
Danilo J. S. Bellinifisl 14
2013-07-05
DojosDojos
Danilo J. S. Bellinifisl 14
2013-07-05
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
Danilo J. S. Bellinifisl 14
2013-07-05
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
Danilo J. S. Bellinifisl 14
2013-07-05
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
Danilo J. S. Bellinifisl 14
2013-07-05
DojosDojos
● Avaliação retrospectiva
=)
=(
● Discussão– Como melhorar?
– O que ajudou?– O que prejudicou?
● Meio de expressão– Post-it
– Debate
Final
Danilo J. S. Bellinifisl 14
2013-07-05
Obrigado!Obrigado!
Perguntas?
Fork me on
https://github.com/danilobellini/dose
Twitter: @danilobelliniFacebook: www.facebook.com/djsbellini