Il mio manager mi ha chiesto di "solo avvolgere la stored procedure".
I requisiti sono di creare un microservizio che farà quanto segue:
- Accetta i parametri dall'utente.
- Passa questi parametri alla stored procedure.
- Ritorna al client il set di risultati della stored procedure.
All'inizio della mia carriera questo era sicuramente il mio approccio: accoppiando strettamente tutto, hardcoding, senza astrazioni, ecc.
I requisiti che mi sono stati dati, sono di fare proprio questo.
È possibile accoppiare saldamente diversi livelli, mantenendo comunque un livello di astrazione?
Per dare un po 'più di contesto, il flusso è il seguente:
Accetta l'input dell'utente tramite un ApiController:
public class MyController : ApiController
{
public ResponseObject Get ( RequestObject request )
{
string sql = GenerateSql(request);
ResponseObject response = ExecuteSql (sql);
return response;
}
}
Che cosa è strettamente associato qui?
- Se la stored procedure cambia, allora il RequestObject deve cambiare.
- Se la stored procedure cambia, quindi ResponseObject deve cambiare.
- Se la stored procedure cambia, allora la logica GenerateSql dovrà essere modificata.
- etc
Posso ancora implementare un design robusto qui, dato che i vincoli temporali riflettono che tutto deve essere hard-coded?