一项配置是否合理,可以看它是否确实随环境变化、是否需要独立于代码发布,以及错误配置的风险能否被约束。
配置也需要类型和验证
应用启动时应校验必填项、范围和组合关系,发现错误立即失败,而不是运行到某条低频路径才报错。配置变更要有版本、审计记录和回滚能力。
密钥不是普通配置。它需要专门的密钥系统、最小权限和轮换机制,不能进入 Git、镜像或普通日志。动态配置则应考虑推送失败、版本乱序和各实例短暂不一致。
大量业务逻辑塞进配置会制造难以测试的第二套编程语言。复杂规则更适合放进可测试、可评审的代码,配置只保留真正需要变化的参数。