gpt4 book ai didi

registry - 配置选项的优先级 : Environment, 注册表、配置文件和命令行的顺序是什么?

转载 作者:行者123 更新时间:2023-12-02 20:14:36 25 4
gpt4 key购买 nike

所以这是一件有趣的小事,我之前 Stack Overflow 还没有讨论过。这并不是一个生死攸关的问题,但我想听听您的意见。

简而言之:我的程序在这方面有点过度设计:它从四个不同的地方获取配置选项:

  • 命令行参数
  • 配置文件
  • 环境变量
  • Windows 注册表
  • (和硬编码的默认值)

问题是,应该按什么顺序评估这些?我认为很明显命令行选项有最后发言权,但是其他三个选项呢?如果在环境和ini文件中设置了相同的选项,哪个应该优先?

关于注册表,注册表是否会覆盖ini,假设我使用它来更改程序的运行时设置,我是否也应该将应用于注册表的更改重写到配置文件中?我应该将其设置为注册表设置无法覆盖从环境中读取的设置吗?

(如果你想知道这到底是怎么可能的,一个词:X-macro。)

最佳答案

按优先级排序,我会这样:cli > envvars >registry > config > defaults

  • cli:它采用您手动启动程序时肯定要使用的选项
  • envvar:通常用于在运行时手动覆盖配置文件选项(现在通常也用于管理容器环境中的配置选项,参见 12factor 应用程序)
  • registry:特定于Microsoft Windows世界,但根据你的说法,它与环境变量的用途几乎相同
  • config:在安装/配置时定义,因此这些是“用户想要的默认选项”
  • 默认:在未提供任何其他内容时安全运行的最小配置(例如仅在本地主机上监听)

关于registry - 配置选项的优先级 : Environment, 注册表、配置文件和命令行的顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32272911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com