ハードコーディング（）とは、本来プログラム中に記述すべきでないリソース（エラーメッセージなど）を、直接ソースコード中に埋め込むことである。これらは本来、外部ソースから取得するか、実行時に生成するべきものであり、これをソフトコーディング（）という。
ハードコーディングされたデータを変更するには、ソースコードを編集して実行可能ファイルを再コンパイルするか、バイナリエディタを用いてメモリ上またはディスク上のプログラムを書き換える必要がある。
ハードコーディングされたデータは、物理定数、バージョン番号、静的テキスト要素などの不変な情報を表す。一方、ソフトコーディングされたデータは、ユーザ入力、HTTPサーバーからの応答、構成ファイルの内容などの任意の情報であり、実行時に決定される。
具体例としては、固定された付加価値税が設定された電卓や地球の重力加速度が設定された体重計がある。それらは付加価値税率が異なる共同体や地球以外の重力の場所では正常な値が取得できない。
概要.
ハードコーディングでは、入力データや期待する形式が変更されるたびに、プログラムのソースコードを変更する必要がある。エンドユーザーにとっては、プログラムの外部で何らかの方法で詳細を変更する方が便利である。ハードコーディングが必要な場合もしばしばあるが、通常はアンチパターンと見なされる。プログラマは、エンドユーザのために、動的なユーザインターフェイスではないにしても、ソースコードなしに変更が可能な機能を提供しなければならない。
なお、実行時に拡張可能なにおいては、ハードコーディングは、低レベルのタスクを担当しスクリプトを実行するシステムのコアエンジンを開発することを指す。それに対し、ソフトコーディングは、実行時にシステムによって解釈されるスクリプトを開発することを指す。この場合、この用語には軽蔑的な意味はなく、一般的な開発手法を指す。
ハードコーディングとバックドア.
ハードコーディングされた証明書は、バックドアを作成する一般的な方法である。ハードコーディングされた証明書は通常、構成ファイルやユーザ列挙コマンドの出力には表示されず、ユーザーが簡単にバイパスすることはできない。
ハードコーディングとDRM.