# 硬编码

> 硬编码（hard-coding）是指在软件实现上，将输出或输入的相关参数（例如：路径、输出的形式或格式）直接以常量的方式撰写在源代码中，而非在执行期间由外界指定的设定、资源、资料或格式做出适当回应。一般被认定是种反模式或不完美的实现，因为软件受到输入资料或输出格式的改变就必须修改源代码，对客户而言，改变源代码之外的小设定也许还比较容易。

- ID: m01317
- 分类: technical
- 领域: 软件工程

## 定义

将数据或参数直接写入程序源代码中，而不是从外部配置文件或数据库读取。这意味着每次修改参数都需要重新编译程序。脚手架作用：僵化的隐喻。在制定规则或计划时，如果把具体细节“写死”在流程里（硬编码），一旦环境变化，调整成本极高。应追求“软编码”，保留配置的灵活性。

## 机制

硬编码把参数或数据固化进源码，使变更需改代码重编译，降低可配置性与复用；环境变化时调整成本高。对应地，“软编码”把可变项外置配置，提升灵活。

## 练习

区分“会变”与“不变”：把常变项外置到配置或数据库；保留真正恒定的常量；评估变化频率决定硬编码与否；组织流程中也避免把细节“写死”。

## 脚手架用法

僵化的隐喻。在制定规则或计划时，如果把具体细节“写死”在流程里（硬编码），一旦环境变化，调整成本极高。应追求“软编码”，保留配置的灵活性。

[阅读网页](https://thinkingmodels.site/entries/detail/m01317)
