Il nostro team di architettura sta proponendo un framework che vedrebbe le nostre query SQL spostate da stringhe codificate all'interno delle nostre applicazioni, in un sistema basato su file in cui li invochiamo con chiamate di funzione. La nostra applicazione fa un uso pesante delle query SQL che vanno dal banale, a molto complesso. Questa è una soluzione .NET.
L'idea è che ogni query verrà scritta in file di testo e saremo in grado di taggare campi, join e condizioni con attributi. Quando chiamiamo le nostre funzioni SQL, potremmo passare argomenti per attivare / disattivare questi attributi in base alla nostra logica aziendale, consentendo solo l'esecuzione delle parti dell'SQL.
Sebbene mi piaccia l'idea di astrarre il nostro SQL, sono scettico sul fatto che questo sistema possa portare a benefici tangibili. Il driver principale di ciò è la nostra esperienza passata in cui molti programmatori hanno creato alcune funzioni SQL dinamiche pasticciate in modo massivo che erano impossibili da comprendere. L'idea è che questo renderà più semplice la definizione delle query, renderà più facilmente controllabili tutte le query e definirà chiaramente la logica di business coinvolta. Non sono sicuro che sopravviverà alla prova della realtà.
Mi piacerebbe avere un feedback sui pro / contro di questo approccio.
Inoltre, prima che qualcuno lo suggerisca, Entity Framework è stato rifiutato a causa del supporto discutibile del nostro provider di database (Teradata).