Archive for the "Dojo" Category

[Coding Dojo] Analizando URLs

Realizamos um Dojo interessante, o problema escolhido possibilitou a escolha de uma linguagem de programação diferente, fizemos alguns refactoring no código, o resultado você pode conferir na retrospectiva.

Utilizamos o PHP (Sem um framework de testes) e escolhemos o problema Analizando URLs (dojopuzzles.com)

Código do problema

<HTML>
<HEAD>
 <TITLE>DOJO</TITLE>
</HEAD>
<BODY>
<pre style="background-color:#EBEBEB;">
<?php
  function testeVazio(){
    if(valida("") != "Erro, parametros vazios!") {
      echo "Passou vazio e não detectou erro ............. FAIL";
    } else {
      echo "Teste valida com parametros vazios ........... OK";
    }
    echo "<br />";
  }

  function testaEspacoEmBranco() {
    if(valida(" ") != "Erro, espacos em branco detectado!") {
      echo "Passou espacos em branco e nao detectou erro . FAIL";
    } else {
      echo "Teste valida espacos em branco ............... OK";
    }
    echo "<br />";
  }

  function testaDoisEspacosBrancos(){
    if(valida("  ") != "Erro, espacos em branco detectado!")
      echo "Passou dois espacos em branco nao detectados . FAIL";
    else
      echo "Passou no teste dos dois espacos em branco.... OK<br/>";
  }

  function testaProtocolo() {
    $teste = array(
      "protocolo" => "http",
      "host" => "teste",
    );

    if(valida("http://teste") != $teste ) {
      echo "Erro, Retornou array invalido ................ FAIL";
    } else {
      echo "Array semelhante, passou ..................... OK";
    }
  }

  function valida($param){
    if ($param == "")
      return ("Erro, parametros vazios!");

    $url = trim($param);
    if ($url == ""){
      return "Erro, espacos em branco detectado!";
    } /*else {
      return "Passou no teste dos espacos em brancos...... OK<br/>";
    }*/

    return array("protocolo"=>"http",
                 "host"=>"teste"
    );

  }

  testeVazio();
  testaEspacoEmBranco();
  testaDoisEspacosBrancos();
  testaProtocolo();
?>
</pre>
</BODY>
</HTML>

Retrospectiva

  1. Pontos positivos
    • Maior entendimento
    • Linguagem fácil
    • Integração com o Grupo
    • Aprendizado de uma nova linguagem
    • Novas funções aprendidas
    • Linguagem interessante
    • Refactoring
    • Pontos Negativos
    • Dependência de um Timer
    • Entendimento da Estrutura
    • Editor Ruim
    • Sugestão
    • Utilizar o Notepad++
Link pro Repositório! github.com

Lista de discussão Dojo FAC SBO

Faça parte da lista de discusão Dojo FAC SBO

Assim você poderá ficar informado dos próximos Dojos que irão acontecer.

Basta se inscrever por aqui: http://groups.google.com/group/dojo-fac-sbo

Primeiro Coding Dojo – FAC Sta. Barbara D’Oeste

No dia 29/04/2011 realizamos o primeiro Coding Dojo na FAC, em Santa Barbara D’Oeste. Com a participação de aproximadamente 10 alunos o evento foi um sucesso. Em uma conversa posterior com os alunos, todos gostaram da iniciativa e da interação que o dojo proporciona.
Veja algumas fotos:

 

O que foi feito:
Linguagem escolhida: C
Probelma: Caixa Eletrônico
Editor escolhido: Dev-C++
Código gerado: aqui

O que foi bom:
Dialogo entre alunos de diferentes séries, maior conhecimento da linguagem.
Diversidade de pessoas.
Idéias diferentes
Bastante coisas novas

O que foi ruim:
Por ser a primeira vez, todos ficaram um pouco envergonhados
Dificuldade de entendimento
Poucas pessoas

Sugestão:
Ter sempre um professor para auxiliar
Conhecer mais linguagens

O que é um Coding Dojo?

O que é Coding Dojo?

Primeiramente vamos ver o que é Dojo. Primeiramente Dojo (pronuncia-se Dojô) é onde se pratica artes marciais, sendo assim o objetivo de praticar os movimentos aprendidos exaustivamente, com isso chega a uma maior precisão de cada golpe, movimento,etc. Inspirado nisso, foi-se criado o Coding Dojo que é uma reunião composta por um grupo de programadores com o intuito de treinar e assim procurar umaprimoramente naquilo que eles sabem fazer. Eles focam um problema que tem que ser resolvido, sendo assim um desafio de programação usando as práticas ágeis.

Coding Dojo é uma técnica de treinamento que remete as artes marciais. O dojô é o local onde os movimentos da luta são repetidos a exaustão, sempre fazendo pequenas melhorias a cada repetição. No nosso caso, o treino deve reunir pessoas para resolver um problema simples de programação em conjunto…

http://dojofloripa.wordpress.com/about/

Princípios do Coding Dojo

  1. Aprendizado Contínuo

  2. Todo mundo aprende com o problema a ser solucionado, porque você compartilha experiências e conhecimento no intuito de alcançar algo.

  3. Ambiente Seguro

  4. Vai estar em lugar tranquilo, divertido, sem pressões do seu chefe, do dia a dia do trabalho. É colaborativo e inclusivo, ou seja, do amador ou mais experiente vão poder ajudar sem medir a competência um do outro.

  5. Passos de Bebê

  6. Não precisa ser feito às pressas, é feito uma coisa de cada vez.

Como é composto um Coding Dojo?

  • A duração é de aproximadamente 1 hora e 45 minutos;
    • Esse tempo é pequeno para não ficar cansativo.
  • Inicie descrevendo a todos o problema a ser resolvido;
    • É muito aconselhado não usar problemas reais, porque sempre deparamos por isso todos os dias. Sendo assim pode ser, por exemplo, converter números inteiros em romanos e em cima disso todos vão procurar resolver.
  • No Coding Dojo são usados as práticas ágeis;
    • Por exemplo: Programação em Par, TDD e Passos de Bebê, com o intuito de não só aprender desenvolvimento ágil, mas também ter uma maior união entre o grupo presente.
  • Inicialmente será implementados testes em cima do problema com uma dupla;
    • A partir da programação em par, a dupla(piloto e co-piloto) inciar a implementação dos testes unitários basedos nos requisitos do problema levantado e a platéia fica acompanhando. Dependendo do problema, recomendo que o piloto seja quem sabe mais desse desafio, se não for o caso, então faça um sorteio que fica mais democrático :)
  • Possui turnos de 5 a 7 minutos;
    • Esse turno é usado para seguir uma rotação: 1 – Sai o piloto, 2 – O co-piloto torna o piloto do próximo turno, 3 – Alguém da platéia torna o co-piloto. A dupla terá um turno para implementar os testes. Não precisa apressar para terminar (lembra do passo de bebê?). Se não acabar a tempo não tem problema.
  • Faça uma retrospectiva do que foi feito;
    • Mesmo que o problema não foi solucionado, não tem problema. Deixe uns 10 minutos antes de acabar o Dojo para todos reunirem e responder três perguntas: 1 – O que foi feito?, 2 – O que foi bom?, 3 – O que pode melhorar para o próximo Dojo? Caso vocês gostarem ;-)

Regras do Coding Dojo

No Coding Dojo possui algumas regras básicas para serem seguidas:

  • É necessário ter somente um computador ligado à um projetor (ou um monitor, TV também serve);
    • Como vai ser usado programação em par nos turnos, a platéia vai vendo o que a dupla está fazendo.
  • Quando estiver falhando o teste, todos devem ficar em silêncio e quietos. Não pode atrapalhar a dupla;
    • O TDD segue uma regra: 1 – Escreva o teste, 2 – Falhou? Faça ela passar, 3 – Passou? Refatore. Durante a implementação do teste até quando ela não passar, a platéia deve ficar calada. Somente a dupla pode discutir, sugerir e brigar. Isso é importante para não atrapalhar o andamento do turno. Aí, quando passar o teste, todos podem dar pitaco, sugerir o que deve ser melhor e o que pode melhorar.
  • Não pode fazer um Coding Dojo com um problema inacabado do Dojo anterior;
    • Não pode levar um problema que não foi solucionado do Coding Dojo anterior. Se não terminou, não tem problema. Leve um novo desafio para ser feito no próximo, e não problemas já usados.

O que pode e não pode no Coding Dojo?

Tem certas práticas em um Dojo que são bons, mas tem alguns que atrapalham a harmonia e que quebra os princípios propostos. Abaixo estão elas:

  • O que pode?
    • Comes e Bebes (mas sem atrapalhar o fluxo da reunião);
    • Dar dicas de um determinado problema quando o teste passar;
    • Dar sugestões e dicas durante a apresentação do problema;
    • Fazer em qualquer lugar, caso cumprir as regras acima;
    • Compartilhar conhecimento;
    • Ajudar;
    • Relacionar com outros programadores.
  • O que não pode?
    • Levar algum problema de Coding Dojo anterior;
    • Levar um problema do dia a dia (vamos exercitar nossa criatividade :) ;
    • Discutir tecnologias durante o Dojo (sem flamewar por favor!!);
    • Falar quando o teste estiver em vermelho.
    • Atrapalhar o andamento do Coding Dojo;

Via: WebLovers

Pessoal de Santa Bárbara, vamos montar um grupo de DOJO ?