Perché dovremmo usare file di proprietà esterni per un'applicazione?

4

Attualmente sto lavorando su un progetto di rotaie e ho un requisito in cui voglio essere in grado di mappare le lettere iniziali del nome di un paese al suo codice ISD. es .: IND = > 91, USA = > 1, ecc.

La domanda più ampia in questo caso è (indipendentemente dal framework su cui lavori), quale dovrebbe essere la migliore pratica per archiviare queste cose. Dovresti usare un file di proprietà (yaml, in questo caso)? O Dovresti semplicemente creare un tavolo nel database e leggerlo da lì? O Dovresti semplicemente avere una hash_map come struttura nel tuo codice rubino (o qualsiasi altra lingua)?

    
posta Ankit Dhingra 31.01.2013 - 07:16
fonte

3 risposte

3

Dipende in parte dai tuoi requisiti:

  • Se la configurazione viene fornita / aggiornata da terze parti (ad esempio, risorse di testo multilingue su cui lavorano le agenzie di traduzione), usa qualsiasi cosa possa facilmente utilizzare. Se è possibile scegliere il formato, è preferibile un formato di testo molto semplice come YAML o Java Properties (ma anche il codice costituito da dichiarazioni costanti potrebbe funzionare).
  • Se è necessario essere in grado di aggiornare i dati mentre l'applicazione è in esecuzione e tramite un'interfaccia utente (ad esempio la sezione di amministrazione dell'app), una tabella DB può essere la migliore.
  • Se la configurazione è complessa (ha condizioni, gerarchie, sostituzioni, ecc.), questa è in realtà una logica di programmazione e dovrebbe essere eseguita in codice. Evita la codifica software .

Se nessuno di questi è il caso, usa semplicemente ciò che è più popolare nella tua lingua / struttura / comunità / ecosistema, così gli altri sviluppatori avranno familiarità con esso. Per i progetti Rails che sembrano essere YAML, per Java si tratta di file .properties, ecc.

    
risposta data 31.01.2013 - 09:57
fonte
1

Come hai menzionato "qualsiasi altra lingua", avrei creato una classe di utilità in JAVA con un oggetto proprietà contenente nomi di paesi e codici come coppie di chiavi e valori.

Il motivo per cui ho menzionato una classe di utilità è che può essere usato per memorizzare altre cose come queste (per esempio mappare i file di lingua con i paesi per la localizzazione, ecc.). Voglio dire semplicemente che avere una classe di utilità con materiale richiesto a livello globale è un'opzione migliore.

Questa è solo la mia opinione in JAVA.

AGGIUNTO: utilizzando un file di proprietà esternalizzato, è sufficiente aggiungere / rimuovere voci nel file delle proprietà senza dover modificare il codice del programma. Offre molta flessibilità.

    
risposta data 31.01.2013 - 07:27
fonte
0

Se disponi di un file di proprietà esterno, hai anche il vantaggio che puoi facilmente consultare la configurazione e non devi avviare il programma vero e proprio.

Questo può essere molto utile se mantieni più di un'istanza del tuo programma e devi cercare velocemente, come è configurato tutto. Puoi semplicemente controllare i file di configurazione e vedere, se trovi un errore lì, modificare alcune impostazioni (ad esempio una connessione-database) ecc.

Un altro vantaggio è che puoi eseguire facilmente il backup di queste impostazioni.

    
risposta data 31.01.2013 - 09:26
fonte