javascriptのリアルゲーム投稿サイト -sightlasの開発ブログ

sightlasの開発ブログと称して、全然関係のない(?)技術論や日常の出来事を書きます。

プログラムは目に見えない性質を持つ

よく良い・悪いプログラムとは何ぞや、って議論があります。ところが、良い悪いは宗教ですし、開発の状況にも依存します。

そのため、本ブログでは良い悪いではなく、プログラムの性質について書いていこうかなと思っています。

ここで言うプログラムの性質とは、物が上から下に落ちたり、走っている電車の中でジャンプしても後ろに移動しないといった、目に見えないが確実にコードの中に潜む、逆らうことができない力学のようなものを言います。

この力学を理解すれば、来世を信じる信じない、隣人に愛されるよりも愛したい、納豆にはネギを入れるかどうか、といった信条に惑わされることなく、一つの真実にたどり着けるでしょう(ホンマかいな)


で、これからその性質について語るわけですが、そもそも性質が見えるようになるには、実は条件があります。

それはプログラムを整理するということです。超重要です。これをしないと永遠に性質は見えません。

例えば、次のような関数があったとします(ここではjavascriptで記述しています)。

----------------------------------------------------
function f(x){
    return x * 2 + 25 - 3 + x * 8 + 1 - 23;
}

----------------------------------------------------

 これだと、xに対してどんな処理をして、値を返す関数なのか、さっぱり予想だにできませんが、整理すると…、

----------------------------------------------------
function
f(x){

    return 10 * x;
}

----------------------------------------------------

なんと!xを10倍して、その値を返しているのだ!
とわかります。


...ま、この程度なら、整理して意味あんのって感じですが。でも、これをより広く行うことで見えてくることがあるのです。

これは知っている人だけの話ですが、数学でも数式をどんどん整理して、それから考えますよね。あれと同じで、プログラムもどんどん整理していくことで見えてくることがいっぱいあるのです。

特にデザインパターンをほんとの意味で理解し、プロジェクトを炎上させないアーキテクトな設計者になるには、この整理した時に見える性質を把握していることが必須条件です。

長くなったので、また気が向いたら整理のポイントと、それにより見える性質、その後の世界について、順番に書いていこうかなと思います。