Quais são as principais práticas e padrões de design que todo cara de .NET deve conhecer? [fechadas]

16

Em meu breve período como programador profissional, vi muitos aplicativos escritos por programadores com toda a educação que parecem ter lido os primeiros capítulos de um livro do .NET 2.0.

Caramba, quando comecei, escrevi a maioria desses aplicativos!

Quais são os maiores padrões de design cruciais para a criação de aplicativos .NET INCRÍVEIS?

Por incrível eu quero dizer por dentro também!

Daniel Upton
fonte
Nenhum é crucial.
Kirk.burleson

Respostas:

22

Primeiro: Conheça bem suas ferramentas básicas

  1. Conheça o modelo de evento do ASP.Net. Você vai se bagunçar se não o fizer.

  2. Entenda a mecânica do OO. Um número surpreendente de programadores .Net relativamente experientes ainda parece pensar que é 1972.

  3. Comece a ler o código completo.

Segundo: Aprenda a separar preocupações

O crime de design mais comum que vejo no desenvolvimento do ASP.Net é preencher toda a lógica de negócios no código por trás. Eu sei que todos os exemplos da Microsoft fazem dessa maneira. Eu sei que isso se justifica em aplicativos pequenos. E eu sei que às vezes faço dessa maneira. Mas, na verdade, é um design ruim e é meu ódio por animais de estimação durante a semana.

Terceiro: Aprenda tudo sobre design

A maior parte do código .Net de baixa qualidade que eu vejo é o resultado de um projeto OO ruim. Portanto, recomendo um bom entendimento de:

  • Princípios do SOLID
  • Padrões de Design GoF
  • MVC (para ASP.Net MVC)

Quarto: conheça mais ferramentas

Você sabe como a Microsoft facilita as coisas, fornecendo muitas ferramentas prontas para uso? Bem, você atingirá suas limitações mais cedo ou mais tarde. Ao fazê-lo, você terá que dobrá-las à sua vontade ou rolar a sua. De qualquer maneira, você terá que ficar sujo com algum CSS e Javascript.

Finalmente

Depois de fazer isso, você estará no caminho certo.

[Editar: Corrigida a sequência para aprender este sutff. Aparentemente eu não pude contar ontem ...]

Kramii
fonte
"Ao fazê-lo, você terá que dobrá-los à sua vontade ou criar o seu próprio" ou usar algo de código aberto. 1, no entanto, boa resposta
pdr
Obrigado .. Resposta realmente impressionante :-) mas o que é todo esse burburinho sobre mvvm, ioc, mvp, repositórios, fábricas ... Insira qualquer outra palavra-chave grande aqui .. qual é a atual abordagem "abençoada pela microsoft" para criar aplicativos da web?
Daniel Upton
3
MVVM - (atualmente) um padrão de design muito específico do WFP / Silverlight. MVP - um padrão semelhante ao MVC, com algumas diferenças nas interações entre classes / camadas. Repositórios / fábricas / COI - devem ser abordados em sua leitura do "Terceiro" acima, eles estão relacionados à separação de preocupações, ao princípio DRY e ao design testável. Abordagem "abençoada pela Microsoft" - depende de quais são suas necessidades. A tendência atual definitivamente parece ser MVC3, que vai um longo caminho a habilitação "bom" o projeto com muito barulho menos, com fácil IOC / DI, controladores testáveis etc.
mjhilton
3
@ Daniel Há certamente muitas chavões por aí. A coisa mais importante que você pode fazer é aprender o que são e que tipos de problemas eles podem ajudá-lo a resolver. Não fique preso na armadilha de colocar todo o aplicativo em um conjunto de padrões de design que não agregam valor na área de manutenção, ou pior - é difícil de entender (às vezes tanto que você não consegue se lembrar de algo) faz 6 meses depois que você o escreveu). Deixe os padrões aplicáveis ​​ajudá-lo a simplificar problemas complexos.
Michael Dean
1
@ Daniel: Eu realmente não me preocuparia muito com abordagens "abençoadas pela Microsoft". Um bom design é um bom design, não importa quem o abençoe. De fato, a Microsoft costuma acompanhar essa área (por exemplo, o ASP.Net MVC como resposta a outras estruturas do MVC). Dito isto, você precisa estar ciente da tecnologia Micosoft . Sabe-se que grandes projetos falham porque não se adequam ao conjunto de ferramentas disponível.
Kramii
0

A variedade de pontos mencionados por Kramii vale a pena, mas eu gostaria de enfatizar a menção de trabalhar com os princípios do SOLID. Obter uma compreensão realmente boa disso fará uma grande diferença, e muitos dos padrões GoF etc. começarão a cair mais naturalmente. Grande parte dessas coisas acaba separando suas preocupações e gerenciando suas dependências; portanto, comece na fonte e tudo fará sentido.

Se você é como eu era antes do meu recente curso de codificação OO com o JP Boodhoo, o princípio de responsabilidade única significa muito mais do que você pensa! Vale a pena entender como uma classe pode ser pequena quando você se apega a isso bem.

eviltobz
fonte