CONSTANT_CASE 怎么转?常量与环境变量命名
常量命名(CONSTANT_CASE,也叫 screaming snake case)把词全部大写、用单个下划线连接。代码里的常量、配置键、环境变量,大多采用这个写法。
什么时候需要全大写下划线
接第三方服务时,配置项往往一次来十几个:max retry count、request timeout、api base url。放进 .env 或配置模块时,键名要统一成 MAX_RETRY_COUNT 这种形式,否则一半大写一半小写,读配置的人每次都要确认拼写。
代码里的常量也类似。同一个模块里如果既有 maxRetries 又有 MAX_TIMEOUT,风格就乱了;批量把一批常量名转成统一格式,再逐个核对用途,比边写边想起来更省事。
- 环境变量与 .env 文件的键名
- 代码里的常量、枚举值、配置默认值
- HTTP 头、事件名等约定全大写的字符串
- 把混杂风格的旧常量名统一
转换规则与两个容易忽略的点
它的处理顺序是:先在「小写字母或数字 + 大写字母」的边界拆词,去掉首尾空白,整体转大写,再把连续的非字母数字字符合并成一个下划线。所以 max retry count、maxRetryCount、max-retry-count 都会得到 MAX_RETRY_COUNT。
数字不单独拆分,version2 结果是 VERSION2,max retry 2 得到 MAX_RETRY_2。另外,工具只在转大写前去掉首尾空白,如果输入以符号开头,结果可能留下下划线,复制到 .env 前扫一眼首尾字符比较稳妥。
- 驼峰边界会被拆开:maxRetryCount → MAX_RETRY_COUNT
- 多个分隔符合并成一个下划线
- 数字跟随相邻词:version2 → VERSION2
- 中文会被删除,需先翻译成英文
- 复制前检查首尾是否有残留下划线
各平台对环境变量名的限制
POSIX shell 的变量名由字母、数字、下划线组成,且不能以数字开头,所以 2FA_KEY 在 shell 里用不了,得写成 TWO_FA_KEY 或 KEY_2FA。Windows 的环境变量名不区分大小写,PATH 和 Path 是同一个变量;.env 没有强制规范,加载库一般按 KEY=VALUE 解析。
工具不会替你检查这些规则,也不判断名字是否已经存在。它的边界是纯字符变换:不校验长度、不检查重复键、不区分这个变量该不该放密钥。落到真实配置前,先在目标环境里 printenv 或读一次配置,确认名字真的生效。
- shell 变量名不能以数字开头
- Windows 环境变量名不区分大小写
- 工具不检查重复键与长度限制
- 部署前在目标环境确认变量读取成功
常见问题
环境变量名为什么习惯全大写?
这是历史与可读性的双重结果:早期终端只有大写字符,后来成为 C 语言预处理器宏和 shell 的惯例,便于和普通变量区分。多数系统本身并不强制大写,但全大写能让人一眼看出这是配置项而不是运行时状态。
数字会被怎么处理?
数字和相邻的词连在一起,不会自动插入下划线。max retry 2 得到 MAX_RETRY_2,version2 得到 VERSION2。如果希望数字单独成段,需要在输入里用空格隔开,或者转换后手动补下划线。
常量名有长度限制吗?
不同环境不同。shell 和多数编程语言对标识符长度没有硬性上限,但环境变量在部分系统里有总长度限制,Windows 单个变量名和值也有上限。工具不校验长度,名字过长时请在目标平台实测一次。
相关工具:常量命名