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

おまじない

pointこの用語のポイント

point理由は分からないけど、それを書いておけば動くよ

pointもしくは、必要な記述だけど理由は知らなくていいよ

pointプログラミングの話で出てくるよ

スポンサーリンク

簡単に書くよ

おまじない(読:オマジナイ)とは

プログラミングの話で出てくる用語のひとつ
であり

人間語で書いたプログラムの元ネタ(ソースコード)に書く「理屈はサッパリ分からないんだけど、なぜかコレを書いておくと動くのよね。だから理由なんて考えないで、とにかく書いておけ!」な内容のこと
です。
あるいは

ソースコードに書く「ここにコレを書くのは、それなりに理由があるんだけどさ。多分、今の君に説明しても分からないと思うんだ。だから理由なんて考えないで、とにかく書いておけ!」な内容のこと
です。


image piyo

詳しく書くよ

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

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

おまじない

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

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


です。

おまじない2

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

おまじない3

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

おまじない4

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

おまじない5

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

おまじない6

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

おまじない7

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

この話で登場した

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

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

おまじない8

プログラミング言語は「ソースコードを書くときに使う言葉」です。
言い方を変えると、コンピュータさんへ命令するときに使う人間語です。

おまじない9

世の中には、たくさんのプログラミング言語があります。
人間様の世界にも英語や日本語、中国語など、たくさんの「言語」がありますよね。
それと同じです。

おまじない10

プログラミング言語によって処理の書き方は違います。
ですが、基本的な部分の書き方は似ていることが多いでしょう。

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

プログラムを実行すると、コンピュータさんはソースコード(を翻訳したもの)に従って、お仕事をしてくれます。

おまじない11

コンピュータさんは律儀で素直なやつです。
ソースコードに書いてあることは絶対にやってくれます。

おまじない12

ただし、融通が利かないやつでもあります。
ソースコードに書いてないことは絶対にやりません。

おまじない13

そのため、ソースコードには無駄な記述がありません。

ソースコードに書いてある内容は、すべての記述が意味を持つ

のです。

そんなソースコードを書く作業をプログラマさんは日夜やっていますが、たまに「理由は分からないけど、コレを書いておかないと動かない」という事態に出くわします。

どうして その記述が必要か分かりません。
ですが、それを書くと、ちゃんと動きます。

おまじない14

試しに、その記述を消してみました。
なぜか、ちゃんと動かなくなります。

おまじない15

仕方がないので再度、書いてみました。
ちゃんと動きます。

おまじない16

この「理由は分からないけど、コレを書いておかないと動かない」な内容、言い方を変えると

「理由は分からないけど、これを書いておくと動く」な内容

が「おまじない」です。

おまじない17

おまじないは、コンピュータさんにとっては「そりゃー、ここで そう書いておかないと動かないさ」な内容です。
おまじないが書いてあると動くのも、書いてないと動かないのも、コンピュータさんからすれば当たり前です。

おまじない18

ですが、人間様からすると「なんで必要なの?」です。
書いてあると動く(書いてないと動かない)理由がサッパリ分かりません。

おまじない19

理由を頑張って突き止めても良いのですけどね。
それどころじゃない場合も多々あります。
そんなときは「よく分からないけど、おまじないとして書いておくか」と自分に言い訳して先に進むのです。
そして、他の人に「この部分の処理は何の意味があるの?」と聞かれたら「おまじないだよ(だから、深くツッコまないで)」と答えます。

それが「理由が分からんけど、書いておけば動く」な「おまじない」です。

あとは、そこから派生して「理由はあるけど(多分、混乱させるだけだから)説明しない方が良いと思うんだよね」なときに「あぁ、それはおまじないだよ」と言ったりします。

例えば、そうですね。

プログラミング言語の「C言語」で画面に「Hello world」と表示するプログラムを見てみましょう。
ソースコードの内容は以下の通りです。

#include <stdio.h>

void main()
{
 printf("Hello world\n");
}


この内容を初心者の方に説明するとします。

まずは1行目を見てください。

#include <stdio.h>

の部分です。

この記述は

「stdio.h」という名前のファイルヘッダファイル読み込んでね!

という命令です。

ちなみに「stdio」は「standard I/O(スタンダード・アイオー)」の省略表記です。
「スタジオ」では ありません。

「stdio.h」を読み込む必要があるのは

printf("Hello world\n");

の行で出てくる「printf」関数の本体(「printf関数が呼ばれたら、こんな処理をしてね!」な内容)が「stdio.h」の中に書いてあるからです。

よって「#include <stdio.h>」という記述には「絶対にコレを書けよ!書かないと動かないからな!」な(人間様でも分かる)理由があります。

とはいえ、です。

それを「どうやれば画面に文章が表示されるのかな?」レベルの初心者に説明しても、おそらく理解できません。
いたずらに混乱させるだけでしょう。

そこで優しい先輩方は「#include <stdio.h>」の部分を説明するときに大体こう言います。
「それはおまじないだから、とりあえず書いておいて」と。

そんな感じで、ソースコードに書く「理由はあるけど(多分、混乱させるだけだから)説明しない方が良いと思うんだよね」な内容も「おまじない」と表現したりします。
意図するところは「その中身を知るのは、お前には まだ早い!」です。


image piyo2

一言でまとめるよ

まぁ「おまじない」って単語が出てきたら「『理屈は考えなくていいから、とにかく書いておけ!』な内容なんだな~」と お考えください。

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


書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
サイバー忍者入門 忍者・スパイ・軍隊・ハッカーに学ぶ フルスタック・ハッキング
ソフトウェア受託現場の「失敗」集めてみた。 42の失敗事例で学ぶ受託開発のうまい進めかた