Primeiro Coding Dojo de Ruby do Ano.
Esse post é para fazer uma retrospectiva do primeiro coding dojo de Ruby em Porto Alegre.
O dojo foi organizado pelo Cabral (@felipebcabral) aqui da Softa com o apoio do Carlos Villela (@cv) da ThoughtWorks Brasil e do Miguel Grazziotin (@Miguelgraz) do Dojo-POA (http://groups.google.com/group/dojo-poa). O problema foi escolhido e conduzido por este que vos escreve (@dbiazus).
Confesso que o problema escolhido não foi o mais adequado para um dojo, mas eu tive a melhor das intenções. A idéia era mostar para o pessoal uma estrutura clássica de implementação de linguagens de programação, a AST. A árvore abstrata de sintaxe (abstract syntax tree) é uma representação da estrutura sintática de código escrito em alguma linguagem formal.
O problema parece muito abstrato, mas foi inspirado por algo bem prático. A origem da idéia foi o post sobre a implementação do ARel, o motor relacional por trás da camada de banco de dados do Rails 3. O autor (@tenderlove) comenta que usando estruturas simples usadas em implementação de linguagens ele teve grandes ganhos no código utilizado. Então a idéia foi trazer parte desses conceitos para o dojo.
Imaginemos que queremos interpretar uma linguagem para manipular dados baseada em algebra relacional. Abaixo alguns exemplos de código:
Para interpretar o código faríamos um parser do zero, usando um pouco de expressões regulares. O resultado (para a primeira expressão do exemplo) deveria ser uma árvore em memória como a que está abaixo.
O pessoal que estava presente se saiu muito bem e chegamos a finalizar um analisador léxico e iniciar a parte de sintaxe, nada mal para um sábado de manhã. O código produzido está no meu perfil do github. Além disso fiquei muito contente pelo ambiente de desenvolvimento (com o meu editor favorito) ter ficado nos pontos positivos.
Abaixo os pontos positivos e nagativos levantados no final da manhã:
Pontos positivos:
- Café liberado pela TW
- Pãozinho de queijo show de bola
- Ambiente bacana
- Condução
- Autospec
- Ambiente de desenvolvimento (VIM)
- Horário
- Local de fácil acesso
- Bastante gente
- Almoço pós-dojo
Pontos negativos:
- Filtro de café pequeno
- Luminosidade da projeção
- O problema foi abstrato demais
- Ambiente de desenvolvimento (VIM)
- A quantidade de emails não lidos do Diogo
- Lembretes
- Notebooks (dispersão)

Comments [0]