По общему признанию, я хранил много вещей в моем текущем хобби-проекте. Конфигурационные файлы невероятно просты в использовании (по крайней мере, с Python, который поставляется с отличным и простым парсером .cfg), я просто не потрудился использовать их, потому что на 99% уверен, что буду никогда не нужно их менять - и даже если это предположение окажется ложным, оно достаточно мало, чтобы реорганизовать его с разумными усилиями. Однако для чего-то большего / более важного я бы никогда не набрал if foo == "hardcoded bar"
, а скорее if foo == cfg.bar
(вероятно, с более значимым именем для cfg). Cfg - это глобальный синглтон (да, я знаю ...), который загружается в файл .cfg при запуске, и в следующий раз, когда изменяется какое-то значение часового, вы изменяете файл конфигурации, а не источник.
При использовании динамического / рефлексивного языка вам даже не нужно менять деталь, загружающую .cfg, когда вы добавляете в нее другое значение - заставьте его динамически заполнять объект cfg всеми записями в файл (или использовать хэш-карту, в этом отношении) и будет сделано.