Quali sono le principali pratiche e modelli di progettazione che ogni ragazzo .NET dovrebbe conoscere? [chiuso]


16

Nel mio breve periodo da programmatore professionista ho visto molte applicazioni scritte da programmatori la cui intera istruzione sembra aver letto i primi due capitoli di un libro .NET 2.0.

Diamine quando ho iniziato ho scritto la maggior parte di quelle applicazioni!

Quali sono i più grandi modelli di progettazione cruciali per la scrittura di applicazioni .NET AWESOME?

Per fantastico intendo anche all'interno!


Nessuno è cruciale.
kirk.burleson,

Risposte:


22

Primo: conosci bene i tuoi strumenti di base

  1. Conoscere il modello di eventi ASP.Net. Se non lo fai, ti sbaglierai.

  2. Comprendi i meccanismi di OO. Un numero sorprendente di programmatori .Net relativamente esperti sembra ancora pensare che sia il 1972.

  3. Inizia a leggere Codice completo.

Secondo: impara a separare le preoccupazioni

Il crimine di progettazione più comune che vedo nello sviluppo di ASP.Net è quello di inserire tutta la logica aziendale nel code-behind. So che tutti gli esempi Microsoft lo fanno in questo modo. So che è giustificato su piccole app. E so che a volte lo faccio così. Ma in realtà, è un cattivo design ed è il mio odio da compagnia per la settimana.

Terzo: scopri tutto il resto sul design

La maggior parte del codice .Net di scarsa qualità che vedo è il risultato di una cattiva progettazione OO. Pertanto, consiglierei una buona comprensione di:

  • Principi solidi
  • GoF Design Patterns
  • MVC (per ASP.Net MVC)

Quarto: scopri altri strumenti

Sai come Microsoft semplifica le cose fornendo molti strumenti pronti all'uso? Bene, prima o poi colpirai i loro limiti. Quando lo fai, dovrai piegarli alla tua volontà o tirare la tua. Ad ogni modo, dovrai sporcarti un po 'con alcuni CSS e Javascript.

Infine

Una volta che hai fatto così tanto, sei sulla buona strada per fantastico.

[Modifica: risolta la sequenza per l'apprendimento di questo sutff. Apparentemente non potevo contare ieri ...]


"Quando lo fai, dovrai piegarli alla tua volontà o tirare il tuo" O usare qualcosa di Open Source. +1, nondimeno, buona risposta
pdr,

Grazie .. Risposta davvero fantastica :-) ma cos'è tutto questo ronzio su mvvm, ioc, mvp, repository, fabbriche ... Inserisci qui qualsiasi altra grande parola d'ordine .. qual è l'attuale approccio "benedetto da microsoft" alla costruzione di app web?
Daniel Upton,

3
MVVM - (attualmente) un modello di progettazione molto specifico per WFP / Silverlight. MVP - un modello simile a MVC, con alcune differenze nelle interazioni tra classi / livelli. Archivi / fabbriche / COI - dovrebbero essere trattati nella lettura per "Terzo" di cui sopra, si riferiscono alla separazione delle preoccupazioni, al principio DRY e al design verificabile. Approccio "benedetto da Microsoft" - dipende dalle tue esigenze. La tendenza attuale sembra sicuramente essere MVC3, che fa molto per consentire un design "buono" con molta meno confusione, con IOC / DI facile, controller testabili ecc.
mjhilton,

3
@Daniel Ci sono sicuramente molte parole d'ordine là fuori. La cosa più importante che puoi fare è imparare cosa sono e quali tipi di problemi possono aiutarti a risolvere. Non rimanere intrappolato nella trappola di incuneare l'intera applicazione in una serie di modelli di progettazione che non aggiungono valore nell'area della manutenibilità, o peggio - è difficile da capire (a volte così tanto da non ricordare quale cosa fa 6 mesi dopo averlo scritto). Lascia che i modelli applicabili ti aiutino a semplificare i problemi complessi.
Michael Dean,

1
@Daniel: non mi preoccuperei molto degli approcci "benedetti da Microsoft". Un buon design è un buon design, non importa chi lo benedica. In effetti, Microsoft spesso gioca a recupero in questo settore (ad es. ASP.Net MVC come risposta ad altri framework MVC). Detto questo, devi stare attento alla tecnologia Micosoft . Si sa che i grandi progetti falliscono perché non si adattano al set di strumenti disponibile.
Kramii,

0

La varietà di punti citati da Kramii vale tutti la pena, ma vorrei sottolineare la menzione di lavorare con i principi SOLID. Comprenderli veramente bene farà una grande differenza, e molti dei modelli GoF ecc inizieranno a cadere in modo più naturale. Molte di queste cose finiscono per separare le tue preoccupazioni e gestire le tue dipendenze, quindi inizia dalla fonte e tutto il resto avrà senso.

Se sei qualcosa come me prima del mio recente corso di codifica OO con JP Boodhoo, il principio della responsabilità singola significa molto più di quanto pensi! Vale davvero la pena capire quanto può essere piccola una classe quando ti attieni a questo bene.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.