|
|
|
|
|
by atoav
572 days ago
|
|
One pitfall that is so obvious it hurts (but I have seen people fall into it), goes a bit like this: 1. We have a python application 2. We need a configuration format, we pick one of the usual (ini/toml/yaml/...) 3. We want to allow more than usual to be done in this config, so let's build some more complex stuff based on special strings etc. Now the thing they should have considered in step 3 is why not just use a python file for configuration? Sure this comes with pitfalls as you now allow people who write the config to do similar things than the application, but you are already using a programming language, why not just use it for your overly complex configuration? For in house stuff this could certainly be more viable than writing your own parser. |
|
Declarative configs are preferable for keeping your options open as to who or what consumes them. For cases where config as code is truly necessary, the best option is to pick something that's built for exactly that, like Lua (or some other embedded scripting language+runtime with bindings for every language).