Coding Dojo #4: KataArgs

Este Dojo foi de encerramento de fase, por enquanto utilizamos Php e phpUnit e este será o último dojo com essa linguagem, inicialmente definimos que trocaremos de linguagem a cada 4 encontros, e no próximo iniciamos a temporada Ruby .. uhuu .. =D

O kata

Descrição do problema

A maioria de nós tivemos de analisar os argumentos de linha de comando ao longo do tempo. Se não temos um utilitário conveniente, então nós simplesmente andamos pela matriz de seqüências que são passadas para a função principal. Há diversos utilitários bons disponível a partir de várias fontes, mas eles provavelmente não fazem exatamente o que queremos. Então vamos escrever um outro!

Os argumentos passados para o programa é composto de flags e valores. Flags devem ser um caractere, precedido por um sinal de menos. Cada bandeira deve ter zero ou um valor associado a ele.

Você deve escrever um parser para este tipo de argumento. Esse analisador tem um esquema que detalha os argumentos que o programa espera. O esquema especifica o número e tipos de sinalizadores e os valores que o programa espera.

Depois que o esquema tenha sido especificado, o programa deve passar a lista de argumentos reais para o analisador de args. Ele irá verificar se os argumentos coincidem com o esquema. O programa pode então perguntar o analisador args para cada um dos valores, usando os nomes das bandeiras. Os valores são retornados com o tipo correto, conforme especificado no esquema.

Por exemplo, se o programa está sendo chamado com estes argumentos:

-L -p 8080 -d / usr / logs

Isso indica um esquema com três flags: l, p, d. O “L” (logging) é uma flag que não tem valores associados, é uma flag booleana, TRUE se houver, False se não. o “p” (porta) tem um valor inteiro, e o «d» (diretório) tem um valor string.

Se uma flag mencionada no esquema está ausente nos argumentos, o valor adequado padrão deve ser devolvido. Por exemplo, “False” para um boolean, 0 para um número, e ” ” para uma string.Se os argumentos apresentados não correspondem ao esquema, é importante que uma boa mensagem de erro seja dada, explicando exatamente o que está errado.

Se você quiser extender um pouco mais a funcionalidade, adicione ao software o suporte a listas de argumentos, por exemplo

-g this,is,a,list -d 1,2, -3,5

Assim, a “flag” g indica uma lista de strings [“this”, “is”, “a”, “list”] e a flag “d”  indica uma lista de números inteiros, [1, 2, -3, 5 ].


Referência: http://codingdojo.org/cgi-bin/wiki.pl?KataArgs

Retrospectiva

Bom:

  • todos entenderam o problema
  • nivel de dificuldade
  • último dojo em PHP
  • mais interação

Ruim:

  • atraso projetor
  • celular (marcos , salomão)
  • conversa paralela na platéia
  • platéia virou piloto
  • horário de almoço
  • fome
  • kata em inglês
  • paty tumulto

Dados do encontro

Fotos