Quali valori in un'applicazione dovrebbero essere configurabili o altrimenti non codificati? Questo differisce in base al tipo di applicazione (batch vs UI) e sono disponibili standard o linee guida su questo argomento (IEEE, ACM, fornitore, ecc.)?
Ci sono due estremi:
È difficile avere una linea guida perché varia da caso a caso.
Alcune domande per chiedere ogni impostazione:
Quando consiglio di memorizzare le impostazioni nel codice, presumo che utilizzi una costante centralizzata e non un codice fisso in ogni posizione che lo utilizza.
Condividerò una divertente storia di cattivo uso costante che mi ricorda. Ho visto il codice in cui è passata una costante per le dimensioni della pagina. La costante è denominata HUNDRED_STRING. HUNDRED_STRING è ovviamente impostato su "100". Non vedo l'ora di vedere cosa succede quando qualcuno imposta HUNDRED_STRING="200" e il mondo impazzisce.
Ovviamente, più il valore dovrebbe essere modificato, più è probabile che crei un'impostazione di configurazione piuttosto che codificarlo. Generalmente ho una regola dei tre colpi; Effettua prima un hard-code perché è facile, quindi cambialo una volta sulla prima richiesta utente, e dopo la modifica successiva, rifattalo in un valore di configurazione che può essere modificato sul posto senza un altro aggiornamento del codice.
Altri fattori che mi porteranno verso l'hard-coding:
Fattori che mi portano verso le impostazioni di configurazione (sia in un file locale che in un DB condiviso):
Leggi altre domande sui tag design coding-standards configuration