Este artigo foi traduzido por máquina.

Nota do Editor

Orientando design

Howard Dierking

howardd.ednote.gif

nesta edição daMSDN Magazine, vamos nos concentrar nossa atenção em tópicos relacionados às práticas no design de software. Este tema é um favorito pessoal, porque bom design práticas são todos os lugares em todos os sub-specialties do desenvolvimento de software. Temos uma lista organizada atraente, com tópicos variando de teste de aceitação e IronRuby a padrões de apresentação no WPF — e até mesmo uma visão geral sobre a plataforma de "Oslo".

O artigo de maior interesse para mim, no entanto, é Dave "uma introdução do Laribee ao design controlada por domínio." Foram um assinante e o profissional de pensar de design de domínio-orientada (DDD) desde que lê o livro dos Eric Evans o mesmo nome aproximadamente quatro anos e têm crescido dessa maneira de pensar com problemas mínimo. Creio que isso tem sido amplamente devido à relação complementar entre design orientados de domínio, o padrão de modelo de domínio rich e o desenvolvimento controlado por testes.

Mas quando se trata de para a criação de software, não há nenhum marcador prata. EU assistir tecnologias como Windows Workflow Foundation (WF) e WCF (Windows Communication Foundation) continuar a evoluir, vejo que a mudança contínua em direção a orientação de serviço. E eu não ajudar, mas saber se meu adesão staunch determinadas práticas e os heurísticos causou-me para recriar alguns mecanismos cíclicos do meu próprio e subseqüentemente anular uma das metas do design de software de boa — criando um sistema mais passível de manutenção.

Vamos domínio problemático seguro que faz referência a Dave em seu artigo. I, também, uma vez trabalhou nesse setor e criado o que eu considerados uma estrutura elegante em vez disso, para validar as configurações de diretiva e calcular projeções conhecidas como ilustrações. CRIEI meu modelo de domínio de fora em usando uma abordagem controlado por testes, mapeado meu modelo para um banco de dados usando um mapeador relacionais do objeto popular e projetada meu modelo várias camadas de apresentação. Como eu continuação refatorar meu modelo de domínio, percebi algumas coisas. Em primeiro lugar, toda a lógica (e todos os testes que eu tinha criado) começaram a lembrar de algo que viu antes. E, na verdade, quando eu stepped novamente e examinamos o meu modelo de domínio, percebi que eu tinha essencialmente escrevi meu próprio mecanismo de regras encadeamento de encaminhamento.

Tendo em mente que o código mais passível de manutenção é o código que você não precisa manter, considere como ilustrações de diretiva são calculadas. Lógica de cálculo de reais da empresa foi criada por cientistas atuária usando funcional, geralmente, linguagem de simbólicos como APL ou Mathematica. Essa lógica, em seguida, foi convertida em nosso modelo orientado a objeto domínio. Como tenho certeza de que você pode deduzir, um ótimo erros muitos encontrados durante o teste de regressão foram introduzidos nessa conversão.

Eu sabendo de minha própria experiência, GOSTARIA de saber o que meu aplicativo deve ter parecia como eu tinha Refatorada minha lógica de validação em um mecanismo de regras e tomada de uma abordagem mais polyglot-com base para o cálculo. Meu aplicativo ainda seria "domínio-orientada"? Ou DDD filosofia pode ser separada de suas implementações mais freqüentes, orientada a objeto?

Tenha sido analisando meu código antigo recentemente, tentando para ver onde o entendimento dos princípios DDD do tem sido baseado pelo meu OO habilidades de codificação e, em seguida, refatoração partes apropriados do aplicativo paradigmas mais adequados. O que eu já concluiu até o momento é que pensar controladas por domínio ainda é uma parte essencial do software de criação. (Na verdade, determinados elementos do DDD ficar mais significativos em um design multi-paradigm.) No final, minha experiência tem sido uma validação do fato de que o domínio deve orientar o design — até mesmo quando ele desafia o que é confortável para nós como desenvolvedores.

Visite-namsdn.microsoft.com/Magazine. Perguntas, comentários ou sugestões para MSDN Magazine? Enviá-las para o editor:mmeditor@Microsoft.com.

Graças aos seguintes técnicos especialistas da Microsoft por sua ajuda esse problema: Surupa Biswas Mike Calligaro John Gossman, Tim Heuer, Ed Katibah, Gaurav Khanna, Ravi Krishnamurthy, Mike Magruder, Rick Molloy Dave Murray, Puleio Michael, Bob Schmidt, Don Smith e Winkler Matt.