涼の成長記録

自らの人生に主導権を持つべく、独立を目指して2014年3月31日を持ってITエンジニアを退職。そんな23歳♂の成長記録。

命名に妥協しないプログラミング

前置き、そして完結

前にもちらっと書きましたが、美しいソースコードを書くためには、どうすれば良いか問われると、私は必ず「命名に妥協しないこと」と答えます。


つまり、変数名、ルーチン名等、プログラミングにおける全ての「命名」において妥協しないことにより、ある程度、美しいソースコードを書くことができるということです。これだけで、私のような底辺プログラマーでも、ある程度のコードの美しさをキープすることができます。


これだけ考えていれば、コードは自然に簡潔になります。簡潔な役割でない変数や、簡潔でないコードのルーチンに、良い名前を付けるのは難しいですから。自然と分かりやすいコードが生成できてしまう、魔法のテクニックなわけですね。


で、今日その必要性を、改めてヒシヒシと感じたので記事に起こします。


と思ったのですが、私の言いたいことは全て、以下のブロガーさんが書かれていました。
きれいなソースコードを書くために必要な、たったひとつの単純な事 - よくわかりません



割れ窓理論

さて、お陰様でネタが無くなりましたが、底辺は底辺なりに、うだってみたいと思います。


アメリカの犯罪学者が考案した「割れ窓理論」というものがございます。
割れ窓理論 - Wikipedia

「建物の窓が壊れているのを放置すると、誰も注意を払っていないという象徴になり、やがて他の窓もまもなく全て壊される」との考え方からこの名がある。

とありますが、小学校時代を思い出しますね。「1人が喋りだすと、皆が喋りだします、1人目にならないでください」ってね。まあ、そんなこと言われたかどうかは覚えていませんが。


変数名も同じで、1つでも適当な変数名(x, temp, cnt)が放置されていると、後からメンテナンスする人も、同じような変数名を付ける可能性が高まります。「どうせ、ここの窓割れてるし、他の窓も割っちまおう」ということですね。


しかし、全てが一貫性を持って、美しい命名がなされていれば、よほど無神経な人でなければ、その一貫性に従ったコードを書いてくれると思うのです。少なくとも、その可能性は上がるはずなのです。まあ、この「一貫性」というのが、人によって感じ方が違うので難しいのですが。。


綺麗な水に墨汁を垂らした場合、水は一気に濁ります。対して、一滴墨汁を垂らした水を綺麗にするためには、大量の綺麗な水を必要とします。ソースコードも同じようなものです。一度汚れたソースコードは、なかなか美しくできないものです。

「きれいなソース」は、リターンの大きい、時間の投資

見出しは、頭で紹介したエントリーに書いてあったことです。感銘を受けましたので、内容も引用させて頂いて、この記事を終わろうと思います。

きちんとそれが何かを徹底的に考え、徹底的にプログラムを整理する事は、こだわった分だけ、ほかならぬそのプログラマ自身のスキルを着実に向上させる。プログラムをただ書くのではなく、ちゃんと考えて整理するために仮にいまは10の時間が掛かっても、それをやった分、次は9の時間でそれができ、その次は8の時間で、というふうに、投資に必要な時間がどんどん短くなっていく。投資額は小さくなっていくが、リターンは減るどころかどんどん大きくなる。こんなにおいしい投資をしないのは、あなたの時間とあなたの誇りを自ら捨ててる事と同義ではないか。


いやー、プログラミングって楽しいですね。
ではでは。