it's a common pattern to configure apps & tools with yaml/json-like formats - roughly, freeform nested dictionaries. This is convenient and avoids the need to write a parser for configuration, but there's a problem: often, there's a default configuration for plugins, and no checking for unused keys. This means that if I fatfinger { "proigramConfig": { ... }}, "programConfig" will get the default value, and all my changes will be ignored without a warning. We can do better by thinking of configuration as a parsing problem (big reveal inside).
it's a common pattern to configure apps & tools with yaml/json-like formats - roughly, freeform nested dictionaries. This is convenient and avoids the need to write a parser for configuration, but there's a problem: often, there's a default configuration for plugins, and no checking for unused keys. This means that if I fatfinger
{ "proigramConfig": { ... }}
, "programConfig" will get the default value, and all my changes will be ignored without a warning. We can do better by thinking of configuration as a parsing problem (big reveal inside).Probably only a lightning talk.