文章

统一化配置方案

我在之前的项目中常常避免用命令行参数,原因有二。

一是命令行参数序列化高度结构化的配置时非常捉鸡。配置一列IP地址已经是极限,配置一列键值对字典实属折磨。

二是命令行参数的可扩容性太差(即不scale)。超过一个规模极限以后就不得不转向配置文件。

热知识:把过长的命令写成一个脚本也叫配置文件。

一个成熟的命令行参数库应该内建命令行参数与配置文件之间的转换功能。

前向的,提供一个实用程序,把一组命令行参数转储(dump)成一个配置文件。

后向的,提供一个命令行参数,接受一个配置文件,效果等同于接受了其中指定了的命令行参数。

一个小的(可能也不小的)设计考虑是环境变量。社区已经有了成熟且广泛使用的针对环境变量不scale写进配置文件的方案。(有趣的是,我没找到一个dotenv的官方网站。)要不要与之协同?如何协同?仍然需要考虑一下。

本文由作者按照 CC BY 4.0 进行授权