「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

オンコーディング

pointこの用語のポイント

point処理の書き方だよ

point別の場所に分けて書いた方が良い処理や値を、ソースコードの中に直接 書いちゃうよ

point後で見たり変更したりするのが大変だから、嫌がられることが多いよ

スポンサーリンク

簡単に書くよ

オンコーディング(英:hard coding)とは

人間語で書いたプログラムの元ネタを「ソースコード」と言うのですけどね。別のところに分けておいた方が良いであろう処理や値を、ソースコードの中に直接 埋め込むこと
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「ソースコード」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

ソースコードは「人間語で書いたプログラムの元ネタ」です。

オンコーディング

プログラムを作って動かすまでの一般的な流れは

1.人間語でプログラムの元ネタを書く
2.元ネタを人間語から機械語に翻訳する
3.翻訳された指示に従って、コンピュータさんが お仕事する


です。

オンコーディング2

コンピュータさんは人間語が分かりません。

オンコーディング3

人間様はコンピュータさんの言葉が分かりません。

オンコーディング4

プログラムは人間様が作るものです。
そこで最初は人間様が分かる言葉でプログラムを作ります。
コンピュータさんに対する「あれをやれ」「これをやれ」な命令を人間語で書くのです。

オンコーディング5

次に人間語で書いたプログラムの元ネタをコンピュータさんが分かる言葉に翻訳します。
実際に お仕事をするのは、コンピュータさんですからね。
コンピュータさんが分かる言葉に変換する必要があるのです。

オンコーディング6

コンピュータさんが分かる言葉に翻訳したので、コンピュータさんは命令の内容を理解できます。
指示に従って、お仕事をしてくれるでしょう。

オンコーディング7

かなり簡略化した説明ですけどね。
これがプログラムを作るときの流れです。

この話で登場した

人間語で書いたプログラムの元ネタ

を「ソースコード」と言います。

オンコーディング8

以上を踏まえて、本題に入ります。

ソースコードの書き方には、特に決まりは ありません。
コンピュータさんが「あぁ、これは命令だな」と正しく認識できる形であれば、どう書いても良いのです。

ただし!

それは趣味でプログラムを作っている人の場合です。
お仕事でプログラムを作るときは、いろいろなことを考慮する必要があります。
例えば

・他の人が見ても分かりやすく
・後から変更するのが楽なように
・できるだけ同じような書き方で


などですね。
どこに どれだけ こだわるかは お仕事現場次第ですが、後のことを考えないで「取りあえず動けば良い」で作ると、へぼプログラマ呼ばわりされることに なりかねません。

その「取りあえず動けば良い」の際たるもので

本来なら別のところに分けて書いておいた方が良いであろう値や処理を、直接ソースコードの中に べた書きする

のが「オンコーディング」です。

例えば、そうですね。
以下のような処理が あったとしましょう。

関数 金額計算(商品単価, 個数){
 消費税率 = 0.1

 金額 = 商品単価×個数 + 商品単価×個数×消費税率

 return 金額
}


商品単価と個数を渡すと税込の金額が返ってくる処理です。
この処理は以下のように書くこともできます。

関数 金額計算(商品単価, 個数){

 金額 = 商品単価×個数 + 商品単価×個数×0.1

 return 金額
}


消費税率の「0.1」を直接 処理の中に入れ込んじゃう形式です。

この2つの処理において、後者の「0.1」を直接 処理の中に入れ込んじゃう形式がオンコーディングです。
例えば「消費税率をオンコーディングしてんのかよ!クソなコードだな!」と言ったりしますよ。

何故オンコーディングがクソ扱いされることが多いかですが

・パッと見たときに分かりにくいから
・後から変更するのが大変だから


です。

今回の例は数行でしたけどね。
実際には、もっと たくさんの処理が書いてあるはずです。
そんな中、ひょっこり「0.1」という数字が出てきました。
「何じゃ?こりゃ」と なりませんか?

前後の処理を見れば「消費税率かな?」と予想できるかもしれません。
とはいえ、その数字が何を意味するか探さなくてはいけないのは事実です。
ちょっと面倒くさいです。
これが「パッと見たときに分かりにくいから」の理由です。

次に「後から変更するのが大変だから」の理由です。
消費税率が変わって10%だったのが15%になりました。
オンコーディングされていると、該当する場所を すべて変更しなくては いけません。
今回の例では1回しか使っていませんが、実際には何回も出てくるはずです。
それを一から全部変更しなくては いけません。
見落としがないように気を付ける必要があります。
ちょっと面倒くさいです。
これが「後から変更するのが大変だから」の理由です。

できるだけオンコーディングは避けるようにしてください。
その方が優秀なプログラマっぽい気分になれます。

ちなみに、処理の中に直接 埋め込んだ値は「マジックナンバー」と呼ばれます。
何の意味があるか分からないけど とりあえず動くために必要な値だからでしょうかね。
マジックなナンバーなのです。
余裕があれば、併せて覚えてあげてください。


image piyo2

一言でまとめるよ

まぁ「オンコーディング」って単語が出てきたら「外に出すべき処理や値を、ソースコード(人間語で書いたプログラムの元ネタ)の中に直接 埋め込むんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像007
書籍画像064

おまけ

■訳してみるよ

「on(オン)」の意味は「上に」とかです。
「coding(コーディング)」は「code(コード)」+「ing」です。
「code(コード)」の意味は「記号」とか「暗号」とか「符号」とか「コード」とかです。
何となく くっつけると

上に記号にする

となります。





書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
ソフトウェア開発現場の「失敗」集めてみた。 42の失敗事例で学ぶチーム開発のうまい進めかた
AI用語図鑑 ビジネス・開発・試験対策に使える厳選キーワード256