Ho alcuni dati (elenco di parametri) che dovrebbero essere condivisi tra il backend e il frontend. Le modifiche sono davvero infrequenti e le modifiche in genere indicano una ridistribuzione. Attualmente, è memorizzato nel DB, alcune tabelle hanno chiavi esterne. Estendendo la funzionalità abbiamo dovuto continuare ad aggiungere nuove e nuove proprietà su questi oggetti, per poterne filtrare su un certo insieme. Poiché queste proprietà si sovrappongono spesso, ora è un gran casino. Recentemente ho avuto l'idea di archiviare questi parametri in un file descrittore indipendente dal linguaggio (JSON / toml / yaml) in un repository separato e distribuire un modulo js per il frontend e un modulo python per il back-end da questa configurazione. I parametri possono essere aggiunti agli elenchi, quindi il problema delle proprietà sovrapposte sarebbe risolto, potrei semplicemente aggiungerli agli elenchi nel file descrittore. La chiave esterna non è davvero un grosso problema, l'interrogazione del DB può essere eseguita con un campo testo / enumerazione. L'unica cosa è che le voci correlate non verranno rimosse, è necessaria una migrazione personalizzata.
Vantaggi: - Meno richieste dal cliente - Penso che sarebbe più semplice archiviarli e raggrupparli
Svantaggi: - Forse sarebbe un po 'più difficile capire come funzioni questa cosa e quali modifiche debbano essere apportate per estendere questa funzionalità.
Poiché le cose vanno nella direzione opposta di solito (le persone spostano le cose nel DB invece di rimuoverle da lì), vorrei chiedere se qualcuno ha fatto qualcosa di simile e se è una buona idea o no?
Penso che sia irrilevante, ma il frontend è scritto in Angular 1.x e il backend è Django + Python.