Software aziendale: dove dovrebbe andare il codice? [duplicare]

7

Recentemente sono stato intervistato da una società di software che afferma di scrivere software di livello enterprise. Durante l'intervista, l'intervistatore ha osservato che è meglio usare il database semplicemente per memorizzare i dati. Nessuna stored procedure o trigger (o meglio dovrebbero essere mantenuti ad un minimo assoluto).

Ora pensavo che l'avesse menzionato esclusivamente dal punto di vista della manutenzione del codice (come descritto in questa domanda PSE , grazie @gnat), tuttavia ha menzionato che era per motivi di prestazioni. So che l'azienda utilizza server C # e MSSQL per un back-end. La sua dichiarazione è valida e come si aumenterebbe la performance mantenendo tutta la logica del codice dal database?

    
posta Eminem 30.04.2015 - 08:52
fonte

3 risposte

10

Le prestazioni non aumentano né diminuiscono perché "inserisci la maggior parte del codice nel database" o perché "mantieni il codice fuori dal database". Il punto chiave è mettere le parti giuste del codice nel database (o tenerle fuori). Le parti che aiutano a ridurre il traffico di rete potrebbero essere una buona misura per le stored procedure. Le parti che eseguono calcoli pesanti potrebbero essere meglio tenute fuori dal database (altrimenti rischi di rendere il server di database un collo di bottiglia di elaborazione).

Per il codice rimanente (che è tipicamente > 90% per un sistema aziendale), una decisione basata su "ciò che è meglio gestibile ed evolutivo" ha più senso. E anche quello può essere opionated.

    
risposta data 30.04.2015 - 09:21
fonte
3

Generalmente, se si spinge un numero maggiore di codice nel DB e se lo si fa correttamente, dovrebbe comportare un aumento delle prestazioni. E non vedo perché l'intervistatore rivendichi il contrario.

Personalmente non inserirò alcun codice nel DB semplicemente grazie alla facilità di manutenzione e alla facilità di test dell'unità. Nella maggior parte delle applicazioni, il miglioramento delle prestazioni dovuto alla logica di spostamento in DB non vale il mal di testa seguito.

    
risposta data 30.04.2015 - 11:40
fonte
2

Il motivo principale per cui non si dispone del codice nel database è testabilità e manutenzione. È relativamente difficile testare il codice del database ed è una sorta di logica nascosta, che diventerà difficile da mantenere man mano che la logica verrà diffusa e regredirà soprattutto nella fase di manutenzione del progetto.

    
risposta data 30.04.2015 - 09:44
fonte

Leggi altre domande sui tag