Joinville Dojo 2010

Preview:

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

Recommended