目次
ソフトは言霊
「言霊(ことだま)」を知っている人が、どれくらいいるだろう? 言葉に霊(たましい)が宿るってやつ。
知っていても、「ちょっと非科学的な話でしょ」と思っている人が多いかもしれない。
実際、いまどきの日本のエンジニアの多くは無宗教だし、そういう話とは縁遠い。
だがしかし。断言しよう。
ソフトウェアの世界にこそ、言霊は存在する。
優れたソフトウェアのための原則はいろいろある。
KISS, YAGNI, DRY, SOLID, SoC, SLAP, CQS …などなど。
でも、そのすべての根底にあって、コーディングでいちばん重要なものがある。
それが Naming(命名)。
これは、多くの人がうなずいてくれるんじゃないだろうか。
良い命名 → 可読性向上 → バグ削減 → ソフトの進化
ヒルベルト先生
大数学者ダフィット・ヒルベルトの言葉に、こんなものがある。
「椅子、机およびビールジョッキのようなものを、点、線および平面と呼んでも問題としない。」
数学においては、対象にどんな名前を付けても、論理と構造が一貫していれば、正しいものは正しい。
ソフトウェアも技術的には同じだ。
クラス名が X であろうと、Foo であろうと、PaymentProcessor であろうと、プログラムは動くし、コンパイラは気にしない。
でも、人間は違う。
命名が悪いコードは、途端に理解不能になる。
チーム開発がうまくいくかどうかは、適切な共通認識を持てるかにかかっている。
変数名やクラス名を見るとき、我々はそれを単なる文字列として読んでいるわけじゃない。
そこから意味や意図を読み取っている。
だからこそ言える。
ソフトウェアの魂は、名前に宿る。
今どきのソフト開発と言霊
この「言霊」という考え方、実はソフトウェア設計と驚くほど似ている。
意図(Intent)
- 親は子どもに、願いや意味を込めて名前を付ける。いわゆる「名は体を表す」。
- プログラマーは、変数やクラスに役割を与えるために名前を付ける。
隠蔽(Encapsulation)
- 昔は「諱(いみな)/真名(まな)」と呼ばれる本当の名前を隠すことで身を守る、という考えがあった。
- これは、オブジェクト指向における
「内部状態は隠し(private)、意味のある抽象だけを公開する(public)」
という考え方とそっくりだ。
命名は重要だ。
名前は、意図・構造・理解を一瞬で伝える。
それが、ソフトウェアにおける 言霊。
AI時代でも、名前がすべてを左右する
そしてこれは、AI時代になってさらに顕著になった。
精度の高い命名で書かれたプロンプトは、驚くほど質の高いコードを生成する。
AIはロジックだけでなく、私たちが与えた意味(セマンティクス)を処理しているからだ。
GR Naming Cheat Sheet
というわけで、この「言霊」を活かすためにGR Naming Cheat Sheet を作ってみた。
適切な名前に悩んだとき、きっとヒントになると思う。
このシートが、皆さんのコードをほんの少し良くして、そのソフトウェアが、私を含め、誰かを少しでも幸せにしてくれたら嬉しい。
参考資料: