用途
Explicit Configuration 是一项配置实践技能,属于 han-core 技能集。它的用途是指导开发者在配置服务、API 或框架功能时,显式设置所有参数,而不是依赖框架或环境的默认值,从而避免因默认值差异导致的环境相关故障。
主要能力
该技能的核心原则是:默认值会因版本、环境和框架的不同而变化,开发环境中依赖默认值可以正常工作的配置,在生产环境中可能失败。技能将显式配置描述为“可运行的文档”,即配置本身既表达了意图,也保证了行为的一致性。
技能覆盖以下几类配置场景:
- 数据库连接:显式设置连接池大小、超时时间、重试策略;不要依赖默认的连接字符串解析。
- API 调用:显式设置超时、重试次数、请求头;不要假设默认的 content-type。
- 框架配置:显式设置端口、环境、日志级别;不要依赖框架的自动检测。
- 安全设置:绝不依赖默认的 CORS、认证或会话配置;即使默认值是“安全的”,也要显式配置。
使用方式
技能通过反模式与正确模式的代码对比来说明实践方式。
反模式示例:
createServer() // relies on default port, middleware, error handling
正确模式示例:
createServer({
port: config.PORT,
timeout: 30000,
cors: { origin: config.ALLOWED_ORIGINS }
})
适用场景
技能说明在以下情况应应用该原则:
- 任何初始化服务、客户端或框架的时候;
- 任何配置基础设施(Docker、CI、云服务)的时候;
- 任何开发与生产行为差异重要的时候。
限制
该技能资料未提供具体的安装命令、依赖要求、支持的编程语言或框架列表、版本兼容性信息,也未提供收费、价格或平台相关信息。