PIEの原則
プログラミングとかにおける「こーするべきだよね」な思想だよ
「ソースコードは読んだ人が分かるように書け!」だよ
「Program Intently and Expressively」の頭文字を取って「PIE」だよ
簡単に書くよ
PIEの原則(読:パイノゲンソク)とは
「読みやすく書け!」原則のこと。
もう少し具体的に書くと
プログラミングにおける「こうした方が良いよね」な考え方のひとつ
であり
「ソースコード(人間語で書いたプログラムの元ネタ)は他の人が見ても分かりやすいように書け!」のこと
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「ソースコード」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
ソースコードは「人間語で書いたプログラムの元ネタ」です。
プログラムを作って動かすまでの一般的な流れは
1.人間語でプログラムの元ネタを書く
2.元ネタを人間語から機械語に翻訳する
3.翻訳された指示に従って、コンピュータさんが お仕事する
です。
コンピュータさんは人間語が分かりません。
人間様はコンピュータさんの言葉が分かりません。
プログラムは人間様が作るものです。
そこで最初は人間様が分かる言葉でプログラムを作ります。
コンピュータさんに対する「あれをやれ」「これをやれ」な命令を人間語で書くのです。
次に人間語で書いたプログラムの元ネタをコンピュータさんが分かる言葉に翻訳します。
実際に お仕事をするのは、コンピュータさんですからね。
コンピュータさんが分かる言葉に変換する必要があるのです。
コンピュータさんが分かる言葉に翻訳したので、コンピュータさんは命令の内容を理解できます。
指示に従って、お仕事をしてくれるでしょう。
かなり簡略化した説明ですけどね。
これがプログラムを作るときの流れです。
この話で登場した
人間語で書いたプログラムの元ネタ
を「ソースコード」と言います。
以上を踏まえて
「ソースコードは他の人が見ても分かりやすいように書きやがれ!」を高尚な感じで言ったの
が「PIEの原則」です。
「PIE」の部分は「Program Intently and Expressively(プログラム・インテントリィ・アンド・エクスプレッシブリー)」の略です。
※「Program Intently and Expressively」を何となく日本語にすると「プログラムは夢中で、そして、表情豊かに」となります。
例えば、そうですね。
ピヨ太君が以下のようなソースコードを書きました。
z=t*s*0.1;
ちなみに「*」は掛け算の目印です。
算数で出てくる「×」と同じだと思ってください。
いかがでしょう。
これを見て「あぁ、こんな処理をやっているのね」と推測できますかね。
おそらく無理でしょう。
「0.1」が何を意味しているのかすら分かりません。
ピヨ子さんは、ピヨ太君が書いた処理と同じ内容の処理を以下のように書きました。
syouhizeiritu = 0.1;
zeigaku = tanka * suuryou * syouhizeiritu;
今度は、いかがでしょう。
「消費税の金額を計算しているのかな?」と推測できますよね。
ピヨ太君が書いたソースコードは、パッと見で何をやっているか分かりません。
ピヨ子さんが書いたソースコードは、パッと見で何をやっているか分かります。
2人の書いた処理の内容は同じです。
どちらも正常に動きます。
それを踏まえて「ピヨ太君が書いたような分かりにくい書き方じゃなくて、ピヨ子さんが書いたような分かりやすい書き方にしようぜ!」な思想がPIEの原則です。
PIEの原則は「動けば良いや」の対極に位置する考え方です。
ソースコードというのは、同じ処理をさせる場合でも いろいろな書き方ができます。
お仕事であれば、自分が書いたソースコードを他の人が見ることも珍しくありません。
反対に、他の人が書いたソースコードを読み解く必要に迫られることもあります。
過去の自分が書いたソースコードも他人が書いたソースコードと似たようなものです。
「あれ?なんで、こんな処理をしているんだっけ?」となることも珍しくありません。
そんなときは何をしているか読み解く必要が出てきます。
そんな諸々を考えると、ソースコードは読みやすく書いておいた方が良いですよね?
この「ソースコードは読みやすく書いておいた方が良いよね(だから、ソースコードは読みやすく書きやがれ!)」を高尚な感じで言ったのがPIEの原則です。
一言でまとめるよ
まぁ「PIEの原則」って単語が出てきたら「プログラミングにおける『読みやすく書け!』な思想なんだな~」と お考えください。
おまけ
■訳してみるよ
「PIE」は「Program Intently and Expressively(プログラム・インテントリィ・アンド・エクスプレッシブリー)」の略現です。
「program(プログラム)」の意味は「計画」とか「演目」とか「(コンピュータの)プログラム」とかです。
「intently(インテントリィ)」の意味は「夢中で」とか「熱心に」とかです。
「and(アンド)」の意味は「そして」とか「~と」とかです。
「expressively(エクスプレッシブリー)」の意味は「表情豊かに」とかです。
「の原則」は日本語ですね。
何となく くっつけると
「プログラムは夢中で、そして、表情豊かに」の原則
となります。






