跳到正文

配置文件

Configuration File

中级通用

配置文件(Configuration File)是用来存放程序运行参数的文件,例如服务地址、超时时间和功能开关。它把可能随环境变化的设置从业务代码中分离出来,方便你调整和核对,而不必为改一个地址去修改代码逻辑。

你可能会说:「我想让测试环境和正式环境用不同的服务地址,但不想每次都改代码。」

读之前建议先了解

动手看看

订单服务 · 配置预览
修改后自动重新加载
config.json
"endpoint": "https://test.api.example.com"
"timeoutMs": 1500
"enableExport": true
业务代码保持不变fetchOrders(config)
订单列表模拟服务固定在 800ms 后响应
请求地址:https://test.api.example.com
订单 #20240518¥128.00 · 已支付
请求超时等到 1500ms 就停止等待,尚未收到订单。
导出订单
此环境未开放导出
服务地址
启用订单导出

切换地址、拖动超时或关闭导出,左边的配置与右边的预览会一起更新;这里自动模拟重新加载,底部业务代码始终不变。

等待上限超过了模拟响应时间,订单就能显示。超时值是允许等多久,不表示请求一定要耗时这么久。

功能开关让导出入口出现。可以悬停、按住或用 Tab 聚焦按钮观察反馈;这里只演示入口状态,不会真的下载文件。

要点

  1. 1

    把可变参数与代码分开

    做网站时,测试环境和正式环境可能连接不同的服务。我们让代码读取配置文件里的服务地址,切换环境时就只需调整对应的配置,不用把地址散落在各处代码里。

  2. 2

    文件格式要和读取方式配套

    配置文件可以采用 JSON 等格式,但文件放在哪里、字段叫什么、什么时候读取,都由项目约定和代码决定。你让 AI Agent 新增一个配置项时,也要让它检查读取代码是否接上了这个字段。

  3. 3

    留意生效时机和敏感信息

    有些程序启动时读取配置,改完文件还要重启;有些则支持运行时重新加载,得看具体实现。API 密钥这类敏感值如果写进会提交到仓库的配置文件,就可能随代码一起泄露。

容易混淆的地方

配置文件和环境变量都能给程序提供设置:前者把一组设置放在文件里,后者由运行环境传入,项目也可以组合使用。它也不同于数据库里的用户偏好;用户随时修改的个人设置通常需要按用户保存,而不是让所有人共用一份随部署发布的文件。

什么时候用

适合用

  • 同一个后台要连接测试与正式服务,我们用不同配置文件管理各自的服务地址。
  • 一个 AI 工具需要统一调整请求超时时间,你希望改动集中在配置里,而不是逐处找代码。
  • 团队想核对某次部署启用了哪些功能,把非敏感的开关设置集中到配置文件中便于检查。

不适合用

  • 用户要在 App 里随时修改自己的通知偏好,这属于个人数据,更适合按用户保存到数据库。
  • 服务的 API 密钥需要在部署时提供,且配置文件会提交到仓库,可以改用环境变量或密钥管理服务。
  • 只是修改一个页面上的固定提示文案,且它不随环境变化,直接改页面内容比新增配置文件更简单。

练一练

你在做一个预约网站:测试环境和正式环境要调用不同的预约服务,用户也能各自设置提醒时间。哪种安排更合适?

让 AI 帮你做

请检查这个项目现有的配置文件及其读取方式,让测试环境和正式环境分别使用各自的预约服务地址。沿用项目已有的配置约定,说明配置何时生效;用户的提醒时间继续按用户保存,不要放进共享配置。

接下来学什么