SlideShare uma empresa Scribd logo
1 de 15
Danilo J. S. Bellini
fisl 14
2013-07-05
Semáforo gráficoSemáforo gráfico dosedose parapara
TDDTDD emem dojosdojos
TDD
(Desenvolvimento Orientado a Testes)
dose.py
Origem 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. Bellini
fisl 14
2013-07-05
Danilo J. S. Bellini
fisl 14
2013-07-05
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
Danilo J. S. Bellini
fisl 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. Bellini
fisl 14
2013-07-05
dose.pydose.py
Semáforo gráficoSemáforo gráfico
Oi! Eu sou
o dose.py
Danilo J. S. Bellini
fisl 14
2013-07-05
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
Danilo J. S. Bellini
fisl 14
2013-07-05
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
Danilo J. S. Bellini
fisl 14
2013-07-05
Show me the code!Show me the code!
Danilo J. S. Bellini
fisl 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. Bellini
fisl 14
2013-07-05
DojosDojos
Danilo J. S. Bellini
fisl 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. Bellini
fisl 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. Bellini
fisl 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. Bellini
fisl 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. Bellini
fisl 14
2013-07-05
Obrigado!Obrigado!
Perguntas?
Fork me on
https://github.com/danilobellini/dose
Twitter: @danilobellini
Facebook: www.facebook.com/djsbellini

Mais conteúdo relacionado

Mais procurados (12)

Coding Dojo em 5 Minutos
Coding Dojo em 5 MinutosCoding Dojo em 5 Minutos
Coding Dojo em 5 Minutos
 
Bdd&tdd
Bdd&tddBdd&tdd
Bdd&tdd
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Demoiselle Paraguay Dojo 18/01/2012
Demoiselle Paraguay Dojo 18/01/2012Demoiselle Paraguay Dojo 18/01/2012
Demoiselle Paraguay Dojo 18/01/2012
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Scrum Gathering Rio 2014
Scrum Gathering Rio 2014Scrum Gathering Rio 2014
Scrum Gathering Rio 2014
 
Refactoring django applications
Refactoring django applicationsRefactoring django applications
Refactoring django applications
 
Código limpo php
Código limpo phpCódigo limpo php
Código limpo php
 
Mergulhando no ecossistema .NET
Mergulhando no ecossistema .NETMergulhando no ecossistema .NET
Mergulhando no ecossistema .NET
 
Pep 8
Pep 8Pep 8
Pep 8
 
Desenvolvimento Incremental com Test Driven Development
Desenvolvimento Incremental com Test Driven DevelopmentDesenvolvimento Incremental com Test Driven Development
Desenvolvimento Incremental com Test Driven Development
 

Destaque

Casa de Jorge Amado e General Ozório
Casa de Jorge Amado e General OzórioCasa de Jorge Amado e General Ozório
Casa de Jorge Amado e General OzórioGuy Valerio
 
Aprendizaje flexible ensayo
Aprendizaje flexible ensayoAprendizaje flexible ensayo
Aprendizaje flexible ensayoJesus Muñoz
 
Superheroes y la historia. horacio garcia
Superheroes y la historia. horacio garciaSuperheroes y la historia. horacio garcia
Superheroes y la historia. horacio garciaRobertoOtazu
 
Painel indicadores do_sus
Painel  indicadores do_susPainel  indicadores do_sus
Painel indicadores do_susDulcinea Volpe
 
Inauguração do Templo Batista em Ipanema
Inauguração do Templo Batista em IpanemaInauguração do Templo Batista em Ipanema
Inauguração do Templo Batista em Ipanemaiebp_12
 
El acróbata récord.pptx. horacio german garcia
El acróbata récord.pptx. horacio german garciaEl acróbata récord.pptx. horacio german garcia
El acróbata récord.pptx. horacio german garciaRobertoOtazu
 
4Ps Minuto Meridiano
4Ps Minuto Meridiano4Ps Minuto Meridiano
4Ps Minuto Meridiano4Psagencia
 
Masaje _-_dolor_muscular_tecnicas_manuales_en_tejidos_blandos
 Masaje _-_dolor_muscular_tecnicas_manuales_en_tejidos_blandos Masaje _-_dolor_muscular_tecnicas_manuales_en_tejidos_blandos
Masaje _-_dolor_muscular_tecnicas_manuales_en_tejidos_blandosAlmas De Mandalas
 
Flash.pptx horacio germán garcía
Flash.pptx horacio germán garcíaFlash.pptx horacio germán garcía
Flash.pptx horacio germán garcíaRobertoOtazu
 
Español en el mundo
Español en el mundoEspañol en el mundo
Español en el mundospanskaankan
 
Hospitality.Portfolio
Hospitality.PortfolioHospitality.Portfolio
Hospitality.PortfolioAmber Owens
 
O papel da educação a ead
O papel da educação a eadO papel da educação a ead
O papel da educação a eadmartakasbaum
 
O PT rasga a fantasia
O PT rasga a fantasiaO PT rasga a fantasia
O PT rasga a fantasiaGuy Valerio
 

Destaque (19)

Casa de Jorge Amado e General Ozório
Casa de Jorge Amado e General OzórioCasa de Jorge Amado e General Ozório
Casa de Jorge Amado e General Ozório
 
Aprendizaje flexible ensayo
Aprendizaje flexible ensayoAprendizaje flexible ensayo
Aprendizaje flexible ensayo
 
Valores eticos
Valores eticosValores eticos
Valores eticos
 
Superheroes y la historia. horacio garcia
Superheroes y la historia. horacio garciaSuperheroes y la historia. horacio garcia
Superheroes y la historia. horacio garcia
 
Painel indicadores do_sus
Painel  indicadores do_susPainel  indicadores do_sus
Painel indicadores do_sus
 
Manual admin
Manual adminManual admin
Manual admin
 
Sindrome de cushing
Sindrome de cushingSindrome de cushing
Sindrome de cushing
 
Uso educativo de los blogs
Uso educativo de los blogsUso educativo de los blogs
Uso educativo de los blogs
 
Inauguração do Templo Batista em Ipanema
Inauguração do Templo Batista em IpanemaInauguração do Templo Batista em Ipanema
Inauguração do Templo Batista em Ipanema
 
El acróbata récord.pptx. horacio german garcia
El acróbata récord.pptx. horacio german garciaEl acróbata récord.pptx. horacio german garcia
El acróbata récord.pptx. horacio german garcia
 
4Ps Minuto Meridiano
4Ps Minuto Meridiano4Ps Minuto Meridiano
4Ps Minuto Meridiano
 
Masaje _-_dolor_muscular_tecnicas_manuales_en_tejidos_blandos
 Masaje _-_dolor_muscular_tecnicas_manuales_en_tejidos_blandos Masaje _-_dolor_muscular_tecnicas_manuales_en_tejidos_blandos
Masaje _-_dolor_muscular_tecnicas_manuales_en_tejidos_blandos
 
Web 2
Web 2Web 2
Web 2
 
Flash.pptx horacio germán garcía
Flash.pptx horacio germán garcíaFlash.pptx horacio germán garcía
Flash.pptx horacio germán garcía
 
Español en el mundo
Español en el mundoEspañol en el mundo
Español en el mundo
 
Hospitality.Portfolio
Hospitality.PortfolioHospitality.Portfolio
Hospitality.Portfolio
 
O papel da educação a ead
O papel da educação a eadO papel da educação a ead
O papel da educação a ead
 
Coaching - Qué son las 11 competencias
Coaching - Qué son las 11 competenciasCoaching - Qué son las 11 competencias
Coaching - Qué son las 11 competencias
 
O PT rasga a fantasia
O PT rasga a fantasiaO PT rasga a fantasia
O PT rasga a fantasia
 

Semelhante a (2013-07-05) [fisl] Semáforo Gráfico dose para TDD em dojos

TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
Coding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / InstruçõesCoding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / InstruçõesPablo Bender
 
Domain driven design na Prática
Domain driven design na PráticaDomain driven design na Prática
Domain driven design na PráticaDouglas Aguiar
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamentothiagodp
 
Apresentação sobre Coding Dojo
Apresentação sobre Coding DojoApresentação sobre Coding Dojo
Apresentação sobre Coding DojoDenis Ferrari
 
Plone 5: Você ainda vai ter um!
Plone 5: Você ainda vai ter um!Plone 5: Você ainda vai ter um!
Plone 5: Você ainda vai ter um!Simples Consultoria
 
TDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberTDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberCamilo Lopes
 
Coding Dojo - Aplicando Princípios Ágeis
Coding Dojo - Aplicando Princípios ÁgeisCoding Dojo - Aplicando Princípios Ágeis
Coding Dojo - Aplicando Princípios ÁgeisLorival Smolski Chapuis
 
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean DevelopmentCriando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean DevelopmentDaniel Wildt
 
Introdução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosIntrodução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosDionatan default
 
Pós Ruy - 2 e 3 Camadas - Coding Dojo
Pós Ruy - 2 e 3 Camadas - Coding DojoPós Ruy - 2 e 3 Camadas - Coding Dojo
Pós Ruy - 2 e 3 Camadas - Coding DojoCleverson Sacramento
 
Da introdução à prática com Drools Expert e Drools Flow
Da introdução à prática com Drools Expert e Drools FlowDa introdução à prática com Drools Expert e Drools Flow
Da introdução à prática com Drools Expert e Drools FlowRicardo Longa
 
Tdd direto das trincheiras
Tdd direto das trincheirasTdd direto das trincheiras
Tdd direto das trincheirasScumpb
 

Semelhante a (2013-07-05) [fisl] Semáforo Gráfico dose para TDD em dojos (20)

TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Coding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / InstruçõesCoding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / Instruções
 
Domain driven design na Prática
Domain driven design na PráticaDomain driven design na Prática
Domain driven design na Prática
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamento
 
Seu codigo fede e voce nem sabia - 2020
Seu codigo fede e voce nem sabia - 2020Seu codigo fede e voce nem sabia - 2020
Seu codigo fede e voce nem sabia - 2020
 
Apresentação sobre Coding Dojo
Apresentação sobre Coding DojoApresentação sobre Coding Dojo
Apresentação sobre Coding Dojo
 
Plone 5: Você ainda vai ter um!
Plone 5: Você ainda vai ter um!Plone 5: Você ainda vai ter um!
Plone 5: Você ainda vai ter um!
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
TDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberTDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saber
 
Coding Dojo - Aplicando Princípios Ágeis
Coding Dojo - Aplicando Princípios ÁgeisCoding Dojo - Aplicando Princípios Ágeis
Coding Dojo - Aplicando Princípios Ágeis
 
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean DevelopmentCriando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
 
Introdução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosIntrodução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anos
 
Pós Ruy - 2 e 3 Camadas - Coding Dojo
Pós Ruy - 2 e 3 Camadas - Coding DojoPós Ruy - 2 e 3 Camadas - Coding Dojo
Pós Ruy - 2 e 3 Camadas - Coding Dojo
 
Dojo com Processing
Dojo com ProcessingDojo com Processing
Dojo com Processing
 
Da introdução à prática com Drools Expert e Drools Flow
Da introdução à prática com Drools Expert e Drools FlowDa introdução à prática com Drools Expert e Drools Flow
Da introdução à prática com Drools Expert e Drools Flow
 
Dojo abril
Dojo abrilDojo abril
Dojo abril
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Tdd direto das trincheiras
Tdd direto das trincheirasTdd direto das trincheiras
Tdd direto das trincheiras
 

Mais de Danilo J. S. Bellini

(2018-10-18) [ETEC Uirapuru] Segurança da Informação
(2018-10-18) [ETEC Uirapuru] Segurança da Informação(2018-10-18) [ETEC Uirapuru] Segurança da Informação
(2018-10-18) [ETEC Uirapuru] Segurança da InformaçãoDanilo J. S. Bellini
 
(2018-08-25) [Flask Conf] Introdução ao Sanic - O Flask Assíncrono
(2018-08-25) [Flask Conf] Introdução ao Sanic - O Flask Assíncrono(2018-08-25) [Flask Conf] Introdução ao Sanic - O Flask Assíncrono
(2018-08-25) [Flask Conf] Introdução ao Sanic - O Flask AssíncronoDanilo J. S. Bellini
 
(2018-07-14) [Just Python] Números no Python!
(2018-07-14) [Just Python] Números no Python!(2018-07-14) [Just Python] Números no Python!
(2018-07-14) [Just Python] Números no Python!Danilo J. S. Bellini
 
(2017-08-12) [GruPy-SP] AudioLazy no GruPy! (+LV2)
(2017-08-12) [GruPy-SP] AudioLazy no GruPy! (+LV2)(2017-08-12) [GruPy-SP] AudioLazy no GruPy! (+LV2)
(2017-08-12) [GruPy-SP] AudioLazy no GruPy! (+LV2)Danilo J. S. Bellini
 
(2017-07-22) [TDC] Audiolazy em 2017!
(2017-07-22) [TDC] Audiolazy em 2017!(2017-07-22) [TDC] Audiolazy em 2017!
(2017-07-22) [TDC] Audiolazy em 2017!Danilo J. S. Bellini
 
(2017-05-27) [Grupy-SP] Polígonos, pontos e outras geometrias no Shapely (GIS)
(2017-05-27) [Grupy-SP] Polígonos, pontos e outras geometrias no Shapely (GIS)(2017-05-27) [Grupy-SP] Polígonos, pontos e outras geometrias no Shapely (GIS)
(2017-05-27) [Grupy-SP] Polígonos, pontos e outras geometrias no Shapely (GIS)Danilo J. S. Bellini
 
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0Danilo J. S. Bellini
 
(2015-03-14) [Grupy-SP] Projetos Open Source, como colaborar?
(2015-03-14) [Grupy-SP] Projetos Open Source, como colaborar?(2015-03-14) [Grupy-SP] Projetos Open Source, como colaborar?
(2015-03-14) [Grupy-SP] Projetos Open Source, como colaborar?Danilo J. S. Bellini
 
(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)
(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)
(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)Danilo J. S. Bellini
 
(2014-11-05) [PythonBrasil] Testando com py.test e tox
(2014-11-05) [PythonBrasil] Testando com py.test e tox(2014-11-05) [PythonBrasil] Testando com py.test e tox
(2014-11-05) [PythonBrasil] Testando com py.test e toxDanilo J. S. Bellini
 
(2014-10-27) [SETI-UFLA-MG] AudioLazy
(2014-10-27) [SETI-UFLA-MG] AudioLazy(2014-10-27) [SETI-UFLA-MG] AudioLazy
(2014-10-27) [SETI-UFLA-MG] AudioLazyDanilo J. S. Bellini
 
(2014-08-09) [TDC] AudioLazy 0.6 will robotize you!
(2014-08-09) [TDC] AudioLazy 0.6 will robotize you!(2014-08-09) [TDC] AudioLazy 0.6 will robotize you!
(2014-08-09) [TDC] AudioLazy 0.6 will robotize you!Danilo J. S. Bellini
 
(2014-05-24) [Taubaté Perl Mongers] AudioLazy Python DSP (Digital Signal Proc...
(2014-05-24) [Taubaté Perl Mongers] AudioLazy Python DSP (Digital Signal Proc...(2014-05-24) [Taubaté Perl Mongers] AudioLazy Python DSP (Digital Signal Proc...
(2014-05-24) [Taubaté Perl Mongers] AudioLazy Python DSP (Digital Signal Proc...Danilo J. S. Bellini
 
(2013-11-29) [RuPy] AudioLazy Python DSP (Digital Signal Processing)
(2013-11-29) [RuPy] AudioLazy Python DSP (Digital Signal Processing)(2013-11-29) [RuPy] AudioLazy Python DSP (Digital Signal Processing)
(2013-11-29) [RuPy] AudioLazy Python DSP (Digital Signal Processing)Danilo J. S. Bellini
 
(2013-10-16) [LatinoWare] Processamento de sinais em Python
(2013-10-16) [LatinoWare] Processamento de sinais em Python(2013-10-16) [LatinoWare] Processamento de sinais em Python
(2013-10-16) [LatinoWare] Processamento de sinais em PythonDanilo J. S. Bellini
 
(2013-10-03) [PythonBrasil] AudioLazy, processamento de sinais para música, j...
(2013-10-03) [PythonBrasil] AudioLazy, processamento de sinais para música, j...(2013-10-03) [PythonBrasil] AudioLazy, processamento de sinais para música, j...
(2013-10-03) [PythonBrasil] AudioLazy, processamento de sinais para música, j...Danilo J. S. Bellini
 
(2013-09-30) [PythonBrasil] Síntese em tempo real com a AudioLazy
(2013-09-30) [PythonBrasil] Síntese em tempo real com a AudioLazy(2013-09-30) [PythonBrasil] Síntese em tempo real com a AudioLazy
(2013-09-30) [PythonBrasil] Síntese em tempo real com a AudioLazyDanilo J. S. Bellini
 

Mais de Danilo J. S. Bellini (20)

(2018-10-18) [ETEC Uirapuru] Segurança da Informação
(2018-10-18) [ETEC Uirapuru] Segurança da Informação(2018-10-18) [ETEC Uirapuru] Segurança da Informação
(2018-10-18) [ETEC Uirapuru] Segurança da Informação
 
(2018-08-25) [Flask Conf] Introdução ao Sanic - O Flask Assíncrono
(2018-08-25) [Flask Conf] Introdução ao Sanic - O Flask Assíncrono(2018-08-25) [Flask Conf] Introdução ao Sanic - O Flask Assíncrono
(2018-08-25) [Flask Conf] Introdução ao Sanic - O Flask Assíncrono
 
(2018-07-14) [Just Python] Números no Python!
(2018-07-14) [Just Python] Números no Python!(2018-07-14) [Just Python] Números no Python!
(2018-07-14) [Just Python] Números no Python!
 
(2017-08-12) [GruPy-SP] AudioLazy no GruPy! (+LV2)
(2017-08-12) [GruPy-SP] AudioLazy no GruPy! (+LV2)(2017-08-12) [GruPy-SP] AudioLazy no GruPy! (+LV2)
(2017-08-12) [GruPy-SP] AudioLazy no GruPy! (+LV2)
 
(2017-07-22) [TDC] Audiolazy em 2017!
(2017-07-22) [TDC] Audiolazy em 2017!(2017-07-22) [TDC] Audiolazy em 2017!
(2017-07-22) [TDC] Audiolazy em 2017!
 
(2017-05-27) [Grupy-SP] Polígonos, pontos e outras geometrias no Shapely (GIS)
(2017-05-27) [Grupy-SP] Polígonos, pontos e outras geometrias no Shapely (GIS)(2017-05-27) [Grupy-SP] Polígonos, pontos e outras geometrias no Shapely (GIS)
(2017-05-27) [Grupy-SP] Polígonos, pontos e outras geometrias no Shapely (GIS)
 
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
 
(2015-03-14) [Grupy-SP] Projetos Open Source, como colaborar?
(2015-03-14) [Grupy-SP] Projetos Open Source, como colaborar?(2015-03-14) [Grupy-SP] Projetos Open Source, como colaborar?
(2015-03-14) [Grupy-SP] Projetos Open Source, como colaborar?
 
(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)
(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)
(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)
 
(2014-11-05) [PythonBrasil] Testando com py.test e tox
(2014-11-05) [PythonBrasil] Testando com py.test e tox(2014-11-05) [PythonBrasil] Testando com py.test e tox
(2014-11-05) [PythonBrasil] Testando com py.test e tox
 
(2014-10-27) [SETI-UFLA-MG] AudioLazy
(2014-10-27) [SETI-UFLA-MG] AudioLazy(2014-10-27) [SETI-UFLA-MG] AudioLazy
(2014-10-27) [SETI-UFLA-MG] AudioLazy
 
(2014-08-09) [TDC] AudioLazy 0.6 will robotize you!
(2014-08-09) [TDC] AudioLazy 0.6 will robotize you!(2014-08-09) [TDC] AudioLazy 0.6 will robotize you!
(2014-08-09) [TDC] AudioLazy 0.6 will robotize you!
 
(2014-05-24) [Taubaté Perl Mongers] AudioLazy Python DSP (Digital Signal Proc...
(2014-05-24) [Taubaté Perl Mongers] AudioLazy Python DSP (Digital Signal Proc...(2014-05-24) [Taubaté Perl Mongers] AudioLazy Python DSP (Digital Signal Proc...
(2014-05-24) [Taubaté Perl Mongers] AudioLazy Python DSP (Digital Signal Proc...
 
(2014-04-16) [Garoa HC] Strategy
(2014-04-16) [Garoa HC] Strategy(2014-04-16) [Garoa HC] Strategy
(2014-04-16) [Garoa HC] Strategy
 
(2013-12-18) [Garoa HC] AudioLazy
(2013-12-18) [Garoa HC] AudioLazy(2013-12-18) [Garoa HC] AudioLazy
(2013-12-18) [Garoa HC] AudioLazy
 
(2014-03-26) [7masters] AudioLazy
(2014-03-26) [7masters] AudioLazy(2014-03-26) [7masters] AudioLazy
(2014-03-26) [7masters] AudioLazy
 
(2013-11-29) [RuPy] AudioLazy Python DSP (Digital Signal Processing)
(2013-11-29) [RuPy] AudioLazy Python DSP (Digital Signal Processing)(2013-11-29) [RuPy] AudioLazy Python DSP (Digital Signal Processing)
(2013-11-29) [RuPy] AudioLazy Python DSP (Digital Signal Processing)
 
(2013-10-16) [LatinoWare] Processamento de sinais em Python
(2013-10-16) [LatinoWare] Processamento de sinais em Python(2013-10-16) [LatinoWare] Processamento de sinais em Python
(2013-10-16) [LatinoWare] Processamento de sinais em Python
 
(2013-10-03) [PythonBrasil] AudioLazy, processamento de sinais para música, j...
(2013-10-03) [PythonBrasil] AudioLazy, processamento de sinais para música, j...(2013-10-03) [PythonBrasil] AudioLazy, processamento de sinais para música, j...
(2013-10-03) [PythonBrasil] AudioLazy, processamento de sinais para música, j...
 
(2013-09-30) [PythonBrasil] Síntese em tempo real com a AudioLazy
(2013-09-30) [PythonBrasil] Síntese em tempo real com a AudioLazy(2013-09-30) [PythonBrasil] Síntese em tempo real com a AudioLazy
(2013-09-30) [PythonBrasil] Síntese em tempo real com a AudioLazy
 

(2013-07-05) [fisl] Semáforo Gráfico dose para TDD em dojos

  • 1. Danilo J. S. Bellini fisl 14 2013-07-05 Semáforo gráficoSemáforo gráfico dosedose parapara TDDTDD emem dojosdojos TDD (Desenvolvimento Orientado a Testes) dose.py Origem 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)
  • 2. Danilo J. S. Bellini fisl 14 2013-07-05
  • 3. Danilo J. S. Bellini fisl 14 2013-07-05 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. Danilo J. S. Bellini fisl 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
  • 5. Danilo J. S. Bellini fisl 14 2013-07-05 dose.pydose.py Semáforo gráficoSemáforo gráfico Oi! Eu sou o dose.py
  • 6. Danilo J. S. Bellini fisl 14 2013-07-05 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. Danilo J. S. Bellini fisl 14 2013-07-05 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. Danilo J. S. Bellini fisl 14 2013-07-05 Show me the code!Show me the code!
  • 9. Danilo J. S. Bellini fisl 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
  • 10. Danilo J. S. Bellini fisl 14 2013-07-05 DojosDojos
  • 11. Danilo J. S. Bellini fisl 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
  • 12. Danilo J. S. Bellini fisl 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
  • 13. Danilo J. S. Bellini fisl 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
  • 14. Danilo J. S. Bellini fisl 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
  • 15. Danilo J. S. Bellini fisl 14 2013-07-05 Obrigado!Obrigado! Perguntas? Fork me on https://github.com/danilobellini/dose Twitter: @danilobellini Facebook: www.facebook.com/djsbellini