プログラミングの中で、ホントに難しいのは、たった2つだけ
プログラミングの中で、ホントに難しいのは、たった2つだけです。
- キャッシュの無効化と
- ネーミング
そう言ったのは、Phil Karltonで、原文は、
There are only two hard things in Computer Science: cache invalidation and naming things.
だそうです。Phil Karltonは、X11の開発に関わった人(なのかな)。
メインはネーミングの方だと思いますが、相棒にキャッシュの無効化を持ってきたあたり、技あり!って気がします。
で、ネーミングですが、ホントに難しいですね。
プロジェクト名に始まって、関数、変数、定数、クラス、CSSのクラス名など、途切れることなく決断力を試されます。書きやすく、読みやすく、覚えやすく、ほどほどに短く、意味が分かり、一貫したスタイル/表記で、他とダブらない名前を発明し続けなければなりません。
何重にも入れ子になった<div>
にCSSクラス名を付けていくのはストレス以外の何物でもないです。hoge-wrapper
, hoge-outer
, hoge-inner
, hoge-container
, hoge-body
, ...
個人的には、分かりやすさを優先して長くなるよりは、短い名前の方が好みです。
特に、関数の引数やローカル変数は、スコープを狭く(つまり関数自体を小さく)保てれば、短くても問題ありません。個々の関数が小さい分、関数の数が増えるので、関数のネーミングに困る、という別の問題は生じますが……。
Martin Fowler曰く、「どんなバカでも、コンピュータが理解できるようなコードは書ける。人間が理解できるようなコードを書くのが、良いプログラマーだ」だそうです。
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
後者でありたいですね〜。