È normale disporre di un back-end pesante SQL per l'API REST di un'app Web?

3

Sto costruendo la mia prima app web PHP con AngularJS come front-end e utilizzando Slim per creare un'API REST-like per l'interfaccia web con cui interfacciarci. Sto scoprendo che la maggior parte del mio codice che sto scrivendo è SQL, c'è molto poca logica PHP nel back-end eccetto per le sessioni e la validazione dell'input.

Ogni endpoint potrebbe avere 1-2 query uniche che utilizza per ottenere i dati che restituisce al client. Alcuni endpoint utilizzano 3-5 query per alcune gestione di versioni complesse, modifiche di dati storici e bit di convalida.

È normale che un'app Web abbia un backend pesante in SQL? Ci sono buone pratiche per questo genere di cose? Al momento sono circa il 70% di SQL 30% PHP.

    
posta Douglas Gaskell 11.10.2016 - 23:42
fonte

1 risposta

5

Senza vedere disegni, codice e una buona conoscenza del dominio, non credo che qualcuno possa legittimamente discutere in un modo o nell'altro. Un codice base che è il 70% di SQL non è tipico, ma questo non significa necessariamente che sia sbagliato. Ho mantenuto alcuni sistemi che, nel bene o nel male, avevano l'intero DAL nel database: il codice di back-end si chiamava semplicemente stored procedure.

La più grande potenziale bandiera rossa è che SQL tende a essere difficile da leggere per manipolazioni di dati complessi che non si adattano facilmente a un modello dichiarativo. Se il codice è difficile da leggere, questo sarebbe il primo segnale che qualcosa deve dare finché i cambiamenti delle prestazioni rimangono entro limiti accettabili.

Detto in modo più generico, non mi preoccuperei se utilizzi SQL per le cose in cui eccelle SQL: recupero e manipolazione dichiarativa dei dati. Se stai spingendo SQL ai suoi limiti, potrebbe essere il momento di guardare ad approcci alternativi.

    
risposta data 11.10.2016 - 23:55
fonte

Leggi altre domande sui tag