返回知识库

工程与栈 · 工程协作

配置文件Configuration

配置把会随环境变化的值从代码里抽出来;代码不变,行为由配置决定,缺必填项就失败并指出键名。

先认出这张 .env 纸条,再决定能不能启动

下面就是花店配置:默认 DATABASE_URL 已配齐。漏掉必填密钥,启动失败也写在同一张纸条上。

花店配置 · .env已配齐 · 花店已开

DATABASE_URL

postgres://local/bouquet

已配齐 · 花店已开地址长在 .env 纸条上。

原因:代码读配置,不把地址写死。下一步:点「漏掉必填密钥」,看启动会不会写在纸条上。

知识点:会变的值不写进代码

纸条上的键和值已经演示了差异,这里只命名四条。

  • 配置把环境、密钥、开关从代码里抽出来,改值不用改源码。
  • 缺必填项要快速失败,并指出缺的是哪一个键。
  • 真实密钥不进仓库,仓库里只放示例。
  • 离开后要盯:开发和线上用同一套键名,值分开注入。

什么时候用、怎么用

地址、密钥、开关会随环境变时用配置;永远不变的业务规则可以留在代码里。

  • 信号:换环境要改源码、密钥被提交、缺一项启动却静默成功。
  • 适用:数据库地址、第三方密钥、功能开关。
  • 不适用:把整份业务逻辑都搬进配置,代码反而读不懂。
  • 最短路径:列出键 → 示例文件进仓 → 真实值本地或平台注入 → 缺项就失败。

正反例:同一家花店启动

目标都是连上数据库,只改值写在哪。

正例从 .env 读地址

换环境只改纸条。结果长在配置上。

反例漏掉必填密钥还硬启动

空值启动失败。失败写在键名上。

快速自测

线上花店启动报缺少 DATABASE_URL,下一步该怎么做?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。