Upload
lorival-smolski-chapuis
View
118
Download
2
Embed Size (px)
Citation preview
JoinvilleDojo http://www.joinvilledojo.com.br
Coding Dojo
Guilherme Oenning@oenning
http://blog.oenning.eti.br
Lorival Smolski Chapuis@lorivalschttp://blog.lorival.com
SOCIESC – Sociedade Educacional de Santa Catarina
Professor Msc Luiz Carlos Camargohttp://luizcamargo.com.br/
Joinville Dojohttp://joinvilledojo.com.br
• Coding Dojo
• Joinville Dojo
• Testes
• Test Driven Development – TDD
• Sessão de coding dojo
• Retrospectiva
• Dúvidas
Agenda do evento
Joinville Dojohttp://joinvilledojo.com.brO que é um Dojo?
Joinville Dojohttp://joinvilledojo.com.brDojo
• O dojo ou dojô (pronuncia-se DÔ-JÔ) é o local onde se treinam artes marciais, especialmente as nipônicas. Muito mais do que uma simples área, o dojo deve ser respeitado como se fosse a casa dos praticantes. Por isso, é comum ver o praticante fazendo uma reverência antes de adentrar, tal como se faz nos lares japoneses.
• Judô, Jiu-Jitsu, Ninjutsu, Karatê, Taekwondo...
Joinville Dojohttp://joinvilledojo.com.brE o Coding Dojo?
Joinville Dojohttp://joinvilledojo.com.brCoding Dojo
• Um Coding Dojo é uma reunião para estudar e praticar desenvolvimento de software.
• Eles estão lá para se divertir e para participar em prática expontânea de forma a melhorar suas habilidades.
• Em um ambiente não competivivo e colaborativo, todos os participantes possuem um objetivo em comum: resolver o problema que foi proposto no início da sessão.
• Para tanto, é utilizado algumas práticas ágeis como o TDD (Test Driven Development), Pair Programming e Refactoring.
Joinville Dojohttp://joinvilledojo.com.brPorque fazer um Dojo?
• Desenvolvedores não treinam.
• Como seria um jogo de tênis sem treino dos seus competidores
• Aquisições fazendo Coding Dojo:– Conhecimento– Habilidades técnicas e humanas– Prática– Network
• Estar sempre preparado
Joinville Dojohttp://joinvilledojo.com.brRequisitos dos participantes
• Desejo de aprender e compartilhar conhecimento
• Respeito ao próximo
• Mente sempre aberta
• Disciplina
• Comprometimento
Joinville Dojohttp://joinvilledojo.com.brRequisitos para o Coding Dojo
• No mínimo 5 participantes
• Uma sala
• Um computador com projetor (apenas um)
• Um problema
• Um contador de tempo
Joinville Dojohttp://joinvilledojo.com.brComo funciona?
Passado, Presente FuturoDefine o Kata (problema)
Sessão
Retrospectiva
Utiliza-se de uma modalidade
Joinville Dojohttp://joinvilledojo.com.brModalidade Randori - Regras
Piloto: Escreve o códigoCo-piloto: Explica o que o Piloto está fazendo e o ajuda
Rodada:Dura 7 minutosPiloto se une ao grupo, Co-piloto vira piloto e alguêm
do grupo vira Co-piloto.
Grupo só fala:Teste está verde (passou)Antes de escrever um teste (para decidir o que será
feito)
Joinville Dojohttp://joinvilledojo.com.brModalidade Randori - Práticas
Test Driven Development (TDD)
Pair Programming
Baby Steps
Refactory
Oriented Object Programming (OOP)
Joinville Dojohttp://joinvilledojo.com.brJoinvilleDojo
Joinville Dojohttp://joinvilledojo.com.brJoinvilleDojo
Fundadores: Guilherme Oenning e Lorival Chapuis
Objetivo: Criar um grupo de estudos para praticar técnicas de desenvolvimento de sistema em Joinville
Ocorreu em 2009 na Sociesc
Retrospectiva 2009
Joinville Dojohttp://joinvilledojo.com.brJoinvilleDojo
Blog: http://www.joinvilledojo.com.br/
Twitter: www.twitter.com/joinvilledojo (92 seguidores)
Grupo: http://groups.google.com.br/group/joinville-dojo
Introdução à testes automatizados e Test-Driven
Development
Joinville Dojohttp://joinvilledojo.com.br
São programas de computador escritos para executar e validar diversas funcionalidades de um sistema.
Testes Automatizados
Joinville Dojohttp://joinvilledojo.com.br
Entrada
Saída
Verificação
Feedback Instantâneo
Joinville Dojohttp://joinvilledojo.com.br
Hotkey: CTRL + R, AResultado: Feedback Instantâneo
Segurança
Joinville Dojohttp://joinvilledojo.com.br
Hotkey: CTRL + R, AResultado: Segurança
Rápido e Barato
Joinville Dojohttp://joinvilledojo.com.br
Test Driven Development
Joinville Dojohttp://joinvilledojo.com.brCenário comum
Escreve o código de produção
Executa testes manuais para
garantir o funcionamento
Escreve testes automatizados
(ou não)
Joinville Dojohttp://joinvilledojo.com.br
Cenário com TDDEscreva
um teste
Veja ele falhar
Faça-o passar
Veja ele passar
Refatore Diversas iterações para
uma única funcionalidad
e.
Concluindo...
Joinville Dojohttp://joinvilledojo.com.br
• “Mas até ontem funcionava.” – Cliente reclamando no suporte após uma atualização de versão.
• “Compilou, está funcionando!” – Desenvolvedor sem noção.
Frases Comuns
Joinville Dojohttp://joinvilledojo.com.br
“Ta pronto, só falta testar!”
Joinville Dojohttp://joinvilledojo.com.br
• Behaviour-Driven Development;
• Mocks;
• Stub;
• Teste unitários e Teste integrado;
• Integração Contínua;
• Code Coverage;
Apenas uma introdução...
Não entendi nada, e agora?
Só se aprende TDD com prática.
Coding Dojo é uma atividade 100%
prática.
Quem quer programar, testar, e comer
chocolate?
Katas
Joinville Dojohttp://joinvilledojo.com.brFizzBuzz
Drinking Game
Joinville Dojohttp://joinvilledojo.com.br
1) Forme um círculo;2) O primeiro jogador fala o número “1”;3) O próximo jogador continua a sequência, 2, 3,
4 etc...4) Porém, caso o número seja divisível por 3, o
jogador deve falar “Fizz” ao invés do número. Caso o número seja divisível por 5, deverá ser falado “Buzz”. E caso o número seja divisível por 3 e por 5, deverá ser falado “FizzBuzz”.
5) O Jogador que errar, deve beber um copo.
Como funciona o jogo?
Joinville Dojohttp://joinvilledojo.com.br
• Um software que, dado um número, seja capaz de me dizer o que eu deveria falar.
• Ex.:– Se eu passar o número 1 para o sistema,
deverá retornar “1”.– Se eu passar o número 3, deverá retornar
“Fizz”.– ...
O que faremos?
Joinville Dojohttp://joinvilledojo.com.brEfeito Magnético
Tela de Desenho do AutoCADTamanho: 200px x 100px
Raio do efeito magnético: 5px
Joinville Dojohttp://joinvilledojo.com.br
• Um software que simula o efeito magnético do AutoCAD;
• Será possível adicionar retas na tela de desenho dado um ponto inicial e um ponto final;
• Se, ao desenhar uma reta um dos pontos estiver dentro de um campo magnético, este ponto deverá ser puxado para cima do outro ponto;
• Se ao desenhar um ponto ele estiver dentro de dois ou mais campos magnéticos, ele deverá ser puxado para o mais próximo;
O que faremos?
44