Quando i programmatori usano il primo approccio al codice?

3

Questo non è solo collegato ad asp.net mvc ma piuttosto tutti i framework mvc che supportano il primo approccio al codice. Uno dei vantaggi che vedo spesso su asp.net mvc e sui blog tutorial è che supporta il primo approccio al codice. Lavoro come consulente .net e sui vari progetti (vecchi e nuovi) non ho mai visto nessuno utilizzare il primo approccio al codice. Solo perché non ho visto non significa non significa che le persone non usano il primo approccio al codice. Uno dei motivi principali per cui il mio team non l'ha mai favorito è perché le stored procedure sono più veloci rispetto all'utilizzo di orm come framework di entità. Capisco che il primo approccio al codice renderà la scrittura della logica di accesso ai dati un po 'più semplice. dalla mia scadenza non userei mai il codice prima quando sto lavorando a un progetto complesso. Per progetto complesso intendo query di database incrociate e diritti di sicurezza ecc. Sono d'accordo con la mia ipotesi? In caso affermativo, quale tipo di progetti utilizzerebbe l'approccio al codice prima?

    
posta Howls Hagrid 10.03.2015 - 03:05
fonte

3 risposte

10

Uso sempre il codice per primo e non penserei mai ai dati prima, a meno che non debba integrarmi con un database esistente. Perché?

  1. Invece di iniziare a capire come si presenta il database, comincio a capire cosa fa la mia applicazione.
  2. Non devo riconciliare il mio design di database iniziale con funzionalità, pagine web, API ecc. Invece, faccio tutte le attività di progettazione insieme.
  3. Il costo del "pre-design" può essere elevato, soprattutto se qualcosa è cambiato negli obiettivi generali dell'applicazione che causa un cambiamento significativo del modello del database.
risposta data 10.03.2015 - 03:56
fonte
3

Se una squadra ha:

  • Un DBA,

  • O uno sviluppatore che è anche un po 'informato sui database,

allora la squadra sarà incline a evitare l'approccio code-first. È lo stesso che utilizzare gli editor WYSIWYG quando il tuo team conosce l'HTML: mentre il lavoro può essere eseguito con un WYSIWYG, devi comunque farlo manualmente se hai bisogno di un codice scritto e gestibile decentemente.

Questo non ha nulla a che fare con le stored procedure in particolare (e trovo la tua affermazione circa le prestazioni sopravvalutate), ma piuttosto con la qualità del design stesso. Ovviamente, anche il numero di funzioni che è possibile utilizzare (stored procedure, colonne calcolate, FILESTREAM, ecc.) È importante.

Un altro aspetto da considerare è che lo schema del database è solo uno degli aspetti da considerare per un prodotto completo. Un altro aspetto potrebbe essere la strategia di backup, la federazione (bilanciamento del carico) e la manutenzione generale a lungo termine del server.

D'altra parte, l'approccio code-first è fantastico:

  • per i team senza DBA e senza persone che sanno come sono progettati i database. Possono provare a farlo a mano (e fallire) o lasciare che lo strumento faccia il lavoro. Anche se lo strumento non farà un ottimo lavoro, non sarà ancora molto peggio (o anche meglio) rispetto a quello che un programmatore inesperto può fare quando progetta uno schema di database.

  • Per piccoli progetti. Se sto facendo il mio sito personale che verrà utilizzato da me e alcuni dei miei amici, non c'è davvero bisogno di usare gli indici o scegliere con cura come i tavoli sono collegati insieme. Qualsiasi progetto (o la sua mancanza) funzionerà.

  • Per i prototipi. L'obiettivo non è fare bene, ma fare velocemente. Se l'approccio code-first significa che puoi completare la funzione in sei ore anziché in sette, questo è un grande vantaggio. È qui che i generatori di codice (compresi quelli che producono codice scadente) o gli ORM in codice sono particolarmente preziosi: ti permettono di creare rapidamente una cosa e di concentrarti sui dettagli che contano (l'oggetto di un prototipo) estraendo i dettagli che non (lo schema del database).

risposta data 10.03.2015 - 03:27
fonte
2

La cosa fondamentale da comprendere è che il codice si riferisce a un caso a uso singolo mentre i dati possono riguardare diversi casi d'uso.

Quindi, sebbene il codice sia utile per un sistema semplice con pochi casi d'uso, qualsiasi cosa complessa con più casi d'uso avrà bisogno di un modello di dati decente per garantire che tutti i casi d'uso siano coperti.

    
risposta data 10.03.2015 - 07:49
fonte

Leggi altre domande sui tag