Vengo da uno sfondo in cui l'utilizzo di un file di configurazione per ogni, se non ogni, costante è la migliore soluzione per la manutenibilità e la flessibilità del programma. Con questo intendo, ogni stringa codificata, intero, tabella / matrice, booleana, colore, espressione di formattazione, ecc. Sono tutti messi in un solo file o classe (spesso chiamata la classe "Configurazione").
Un grande vantaggio di questa soluzione è che le modifiche al codice "accidentale" del futuro sono in grado di introdurre nuove "caratteristiche" quando viene modificata una classe principale o un blocco di codice. Trovo che gli sviluppatori escano dalle aree del codice che non dovrebbero essere toccati senza pensarci davvero. Rende anche un codice in una classe o sezione principale molto più leggibile e coerente (vedi sotto):
if (x == 5)
{
// Logic here
}
Versus
if (x == Config.MaxNumberOfResults)
{
// Logic here
}
più tardi è MOLTO più leggibile e coerente (specialmente in futuro) e richiede pochi o nessun commento da mantenere e nessuna logica deve essere riscritta se decidiamo di volere un massimo massimo di risultati.
Il problema con il codice precedente è che qualche altro sviluppatore potrebbe alla fine capire che 5 è il limite massimo del risultato e poi penso di volere qualcosa di diverso da quello (qualche tentativo dopo) che includono quel numero (perché dio-proibito cambiando il numero) inserendo quindi > = ora l'intero blocco di codice cambia ... il che potrebbe introdurre una "caratteristica" da qualche altra parte più avanti lungo la linea. Utilizzando il metodo di configurazione, la maggior parte degli sviluppatori potrebbe non toccare nemmeno la logica principale (di solito).
Il problema è che al mio capo piace l'idea, ma vuole lasciare alcune costanti nei file di codice principale anche se sono usate una sola volta (cioè che il risultato 5 o max è usato una sola volta (proprio lì), così fa davvero avere senso riferirsi ad esso da un'altra classe / file?) Io, naturalmente, penso così a causa dei summenzionati motivi, oltre che è solo un codice più pulito e più coerente.
Il mio modo di pensare è più in linea con le convenzioni / metodologie di codifica corrette o è il mio capo?
Sto bene a farlo a modo suo, ma sembra che tornerà a tormentarmi più tardi lungo la strada.