Eu estava escrevendo um comentário para o artigo “Domain-Driven Design é Simples: Basta Chamar DAOs de Repositórios” do Phillip Calçado, mas acabei escrevendo muito e achei melhor comentar por aqui.

Na empresa onde trabalho, uma empresa de três letrinhas, tentamos implantar DDD em um projeto, mas é difícil fazer isso já que quem tem contato com o cliente não somos nós, os desenvolvedores. O que chega para nós já é a “solução de todos os problemas” que o analista de sistemas criou enquanto conversava com o cliente. Na verdade, a nossa linguagem ubíqua não é feita entre o cliente e nós, mas sim entre nós e o analista.

Eu não acho certo dizer que o sistema está usando DDD também, e achei muito interessante o artigo do Phillip, porque eu estava pensando exatemte nisso outro dia deste. Inclusive, na apresentação de DDD que o Sérgio Lopes fez no Falando em Java 2008, foi a primeira coisa que ele demonstrou: a criação de uma línguagem que fosse clara para o cliente e para o desenvolvedor.

Domingo passado, estive lá no Falando em Java 2008. O evento teve diversas apresentações com destaques, na minha opinião, para as seguintes:

1) A apresentação do Guilherme Silveira sobre hábitos de arquitetos eficazes abriu muito a minha mente para determinadas coisas e, com isso, gerou algumas idéias para escrever aqui no blog, aguardem :)

2) O Sérgio Lopes foi muito bem sucedido com a sua abordagem teatral na apresentação sobre Domain-Driven Design. Ele simplesmente encenou a implementação de um sistema com “DDD”, onde o desenvolvedor cria uma linguagem ubíqua com o cliente e ambos conseguem falar a mesma língua - mesmo o cliente sendo literalmente um cachorro! Alguém tem uma foto disso? - durante o desenvolvimento do sistema.

3) A apresentação do Fábio Kung sobre JRuby on Rails foi bem esclarecedora em relação às limitações do Rails e como isso pode ser resolvido usando o JRuby. Sério, apesar de saber da existência de algumas linguagens cuja a JVM consegue rodar, eu ainda não tinha parado pra pensar no Java como uma plataforma que pode executar várias linguagens diferentes, como o .NET.

4) Emmanuel Bernard, líder de projetos Hibernate e autor do livro Hibernate Search in Action, falou sobre JPA 2.0 e, após o brunch, voltou em cena para falar sobre Hibernate Search. Duas ótimas palestras, diretas e objetivas, com muitos códigos e exemplos. Mas mesmo assim vi muita gente caindo no sono. Uma apresentação logo após o almoço, não dá. Eu me mantive acordado sem muito esforço, porque havia tomando 3 copos de café bem quente para não congelar. ;-)

No final do dia teve o sorteio mais nerd que se tem notícia. O próprio Emmanuel Bernard disse que nunca tinha visto um sorteio mais nerd. O Fábio Kung plugou seu MacBook - e por falar em MacBook, 99% dos presentes estavam com seus MacBooks e iPhones - no projetor e escreveu um simples método em Ruby para sortear os números, o método ficou mais ou menos assim:


def sorteio
(1..5).each {|x| puts x; sleep 1}
rand(300)
end

Houve sorteios de cupons de descontos em compras de livros, de um livro sobre Ruby on Rails e de um Nintendo Wii. É claro que a essa altura do campeonato eu estava achando que o Wii já era meu. Por já ter pago R$ 1500,00 em um e não ter recebido - sim, tomei calote no Mercado Livre de um vendedor altamente qualificado com mais de 1000 pontos positivos - achei que os céus fariam justiça e que o meu número, o nº 32, seria sorteado mas não foi :(

Por isso que agora eu sou ateu! :P