【发布时间】:2019-07-26 09:15:23
【问题描述】:
配置文件文档是否有任何最佳实践,尤其是对于 python?
特别是在科学计算中,通常使用配置文件作为输入来控制批处理作业(例如模拟),并期望用户为他们的场景定制大部分配置。 (配置也可能在不同的处理模块中进行选择,每个模块拥有不同的配置字段套件。)因此,用户应该知道:每个设置的含义或效果;哪些设置未使用(在哪些情况下);什么是默认值(以及允许的值或范围);等等。
我发现不完整的配置文件文档很常见。根本问题似乎是,如果文档与代码分开维护,它们就会变得不同步。 (这对于 API 文档来说似乎不太成问题,因为标准做法涉及并置文档字符串和从函数签名/argspec 自动生成。)例如,如果使用标准 python configparser 一次来解析配置文件,那么访问单个属性的代码(并隐式确定配置模式)可能仍然分布在整个代码库中(并且可能仅在运行时可用,而不是在构建文档时可用)。
进一步的想法:
- 将配置文件(yaml 或类似文件)替换为用户自定义的 python 脚本(以便只需要 API 文档)是不好的做法吗?
- 一个注释良好的示例配置文件的分发(也用于自动测试):如果不同的场景重复大的部分但需要一些完全不同的字段,如何维护?
- 是否可以维护一个模式,既可用于代码(帮助解析、验证和设置默认值),也可用于以某种方式生成文档?
- 是否有一种人类可读/可写的方式来(反)序列化表示新批处理过程的某些(子)类实例的状态(以便现有文档涵盖配置)?
【问题讨论】:
标签: python configuration documentation maintainability