プログラミングの中で、ホントに難しいのは、たった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.

後者でありたいですね〜。