Come gestire un numero elevato di parametri di configurazione in un programma concettualmente?

2

Immagina un sistema software in cui hai 100 parametri, ognuno dei quali è sensibile al cambiamento (nel mio caso si tratta di un sistema di ricerca per l'apprendimento automatico). La soluzione ovvia è memorizzare tutti i parametri in un file di configurazione, in modo che il sistema sia facile da gestire e vedere attraverso.

L'approccio di Whis è migliore, quali sono i vantaggi e gli svantaggi:

  • a) carica il file di configurazione nel punto di ingresso del programma e passa una grande raccolta di variabili di configurazione attraverso ciascun metodo nel codice
  • b) carica il file di configurazione nel punto di ingresso del programma e passa alla raccolta pertinente di variabili di configurazione attraverso ciascun metodo nel codice
  • c) carica le variabili di configurazione direttamente dove sono necessarie
  • d) carica la configurazione e rendila globale

Sono aperto a qualsiasi suggerimento o esempio di una particolare implementazione. Al momento sto sperimentando le variabili di configurazione annidate, ogni oggetto annidato che memorizza la configurazione di diversi moduli nel codice.

    
posta Mark Horvath 10.07.2015 - 02:54
fonte

2 risposte

2

YAML , JSON o XML vengono spesso utilizzati in framework per la gestione delle impostazioni di configurazione. A seconda della lingua che stai usando, un'altra opzione può essere quella di usare un'entità strutturata (cioè in una lingua OO usando una classe) per mantenere le tue impostazioni di configurazione.

    
risposta data 10.07.2015 - 06:36
fonte
0

Come @theatlasroom menzionato, usa una tecnica per strutturare i tuoi parametri di configurazione. Quando questo è a posto, e poiché i parametri sono "sensibili al cambiamento", potresti prendere in considerazione la creazione di un'interfaccia per modificarli. Avendo uno, può proteggere da valori irragionevoli o dannosi (alcune volte inseriti per errore) fornendo indicazioni all'utente.

    
risposta data 10.07.2015 - 08:08
fonte