Arquivo

Textos com Etiquetas ‘QCon’

Garotos propaganda da QCon

14 de junho de 2009

O site da QCon San Francisco 2009 traz algumas fotos do evento do ano passado.

E para surpresa minha, e do pessoal da Locaweb que esteve lá comigo, as fotos da página de tutoriais são quase que exclusivamente da gente:

Foto retirada do site da QCon

Foto retirada do site da QCon

Na página inicial também aparecemos na foto, mas não dá para notar muito.

O Herbert Fisher que encontrou as fotos no site da QCon e nos avisou.

Eventos ,

WTF: Flores para Martin Fowler

10 de junho de 2009

WTF é conhecido no mundo da tecnologia como “Worse Than Failure” (Pior do que falhar) ou simplesmente “What The Fuck”. São situações onde coisas estranhas e inexplicáveis acontecem na execução de softwares, que causam aquele tipo de reação aos usuários:

Existe até um blog, The Daily WTF, que trata sobre esse tipo de assunto de forma extrovertida. Mas vamos ao WTF em questão.

Quando estive na QCon San Francisco 2008, fiquei hospedado no mesmo hotel onde aconteceu o evento, The Westin San Francisco Market Street.

Na TV do quarto era exibida a programação dos eventos que aconteciam durante todo o dia no hotel.
No segundo dia da QCon, veja só quem eram os palestrantes do Tutorial sobre Domain Specific Languages, segundo o canal da programação diária de eventos:

O que será que o Martin Fowler diria (ou disse) para o pessoal do hotel sobre isso?
Algo do tipo “Test all the fucking time” ou “Send me your apologies with my flowers”?

Obs.: No saguão do hotel havia um totem exibindo a programação dos eventos, mas não continha esse erro.

Geral ,

Frameworks e DDD: Mantendo o modelo limpo, por Tim McCarthy

2 de maio de 2009

“Frameworks and DDD: Keeping the Model Clean” foi mais uma das apresentações que assisti na QCon San Francisco 2008, em que Tim McCarthy mostrou algumas técnicas para desacoplar o modelo de domínio da infra-estrutura da aplicação e ainda sim continuar usando recursos de frameworks em .NET.

Tim McCarthy é autor de .NET Domain-Driven Design with C#: Problem - Design - Solution, um livro que propõe mostrar os passos da implementação de uma aplicação real utilizando DDD. O livro é dividido em módulos, cada um identificando um problema, elaborando o design e implementando a solução.

A idéia é sempre deixar o domínio intacto, somente com o código do coração do software. Se você utilizar as famosas ferramentas de “arrastar e soltar”, vai poluir as entidades do domínio com código de infra-estrutura.

Quando falou a respeito do ADO.NET Entity Framework, o novo framework de mapeamento objeto-relacional da Microsoft, Tim se expressou indignado: “Oh, my God!”. Segundo ele, arrastar e soltar tabela por tabela do seu banco de dados, deixando o Visual Studio gerar um monte de código para você é algo não muito bom para se fazer.

Essas ferramentas de geração de código podem ser uma armadilha para desenvolvedores inexperientes. Para sistemas pequenos, sem grandes pretensões, isso pode ser uma solução rápida e que atende sua necessidade. Mas para grandes aplicações é preciso se concentrar no domínio e eliminar qualquer código que polua suas entidades de negócio.

Não é uma boa idéia criar um modelo de domínio fazendo a relação de uma entidade por tabela no banco de dados. As tabelas do banco de dados pertencem à infra-estrutura do sistema. O seu modelo de domínio deve ser rico e refletir seu negócio, o mais próximo da realidade possível. A partir do seu modelo de domínio é que você constrói uma infra-estrutura de persistência de dados.

A apresentação de Tim McCarthy foi repleta de exemplos reais (e rodando) de código. Num deles, mostrou uma classe de entidade do domínio onde havia uma referência using para o namespace Microsoft.SharePoint. Esse foi um tipico exemplo de entidade de negócio poluída.

Também tivemos um exemplo de utilização de repositórios (Repository), que segundo Tim, são um tipo de abstração da persistência, comparando-os como um tipo de coleção de dados, onde é possível listar, inserir, alterar e remover seus itens. Ele enfatizou que o classes do modelo de domínio podem usar repositórios, mas elas devem estar ligadas somente às interfaces dos repositórios, não acopladas às suas implementações.

Outra parte “prática” da apresentação foi a utilização de injeção de dependência (Dependency Injection) de repositórios nas classes de serviço e alteração do tipo de persistência via arquivo de configuração.

Tim também mostrou a implementação de uma unidade de trabalho (Unit of Work), onde a mesma não conversava diretamente com a base de dados.

A apresentação excedeu 10 minutos do tempo previsto, pois tinha muito código interessante a ser mostrado. Isso só acabou instigando a dar uma olhada no seu livro, que vem com o código fonte de todos os passos de construção de uma aplicação em .NET aplicando os padrões de DDD.

Só não esqueça que todo esse código somente vai poder lhe ajudar se você definir bem seu modelo de domínio, consistente e conciso com a realidade do seu negócio.

Você pode assistir à palestra no site da InfoQ:
http://www.infoq.com/presentations/Clean-Model-Tim-McCarthy

Baixe também os slides da apresentação em PDF neste endereço:
http://qconsf.com/sf2008/file?path=/qcon-sanfran-2008/slides//TimMcCarthy_DotNet_Domain_Driven_Design_With_CSharp.pdf
.
Post original:
http://tecblog.locaweb.com.br/2008/11/24/qcon-frameworks-and-ddd-keeping-the-model-clean

.NET, Arquitetura, Eventos , , , , , , , ,

10 maneiras de melhorar seu código, por Neal Ford

23 de abril de 2009

Vou aproveitar o embalo do post sobre Automatização que o Erich colocou no blog de Tecnologia da Locaweb, onde ele fala que Neal Ford, no seu último livro “The Productive Programmer“, escreveu um capítulo inteiro sobre o assunto.

No último mês de novembro, estive na QCon San Francisco 2008 e tive o privilégio de assistir à palestra
“10 Ways to Improve Your Code”
apresentada por Neal Ford.

São elas:

  1. composed method
  2. test-driven development, test-driven design
  3. static analysis
  4. good citizenship
  5. yagni: you ain’t gonna need it
  6. question authority
  7. slap: single level of abstraction principle
  8. polyglot programming
  9. every nuance
  10. anti-objects

Você pode assistir à palestra que agora está disponível no site da InfoQ:
http://www.infoq.com/presentations/10-Ways-to-Better-Code-Neal-Ford

Baixe também os slides da apresentação em PDF neste endereço:
http://qconsf.com/sf2008/file?path=/qcon-sanfran-2008/slides//NealFord_10_Ways_to_Improve_Your_Code.pdf

Arquitetura, Eventos, TDD , , , , , , ,