変数、ファイル名に日本語を使う

genya
·

日本語ドメインにおけるソフトウェア開発で日本語を使わない理由はない。

なぜか?

  1. オンボーディングコストの削減

  2. 認知コストの削減

  3. コミュニケーションコストの削減

  4. 英語にない意味を捻り出すコストの削減

例えば

日本語には被保佐人 という言葉がある。契約における補佐が必要な方を指す言葉。

これを英語ではcuratorと言うらしい。

被保佐人 = curator とマッチするにはマッチすることを認知する必要がある。

仮に 被保佐人についてドメイン知識がなければ、被保佐人 = curatorであることを示すドキュメント、もしくは口頭の説明が必要になる。

`const curator = {name: 'genya'};` と書いてあるのと、`const 被保佐人 = {name: 'genya'};`と書いてあるコードでは認知負荷は差ができる。

これが1個なら問題ないコストかもしれないが100個200個と増えた時には認知負荷が1.3倍、1.5倍と増えていくことになる。

認知の秘伝のタレを作らないためにユビキタス言語で定義された日本語を使うことを優先する。

被保佐人で検索することが可能になるからだ。今ならAIに説明を求めることができそうだ。

これに気づいてから英語圏の人は自分の足で踏んでいる地面と隣の街までの道のりを頭で思い浮かべるようにコードを読み、書いている。

非英語圏の人間にとって隣町まで道路が通っていないようなものだ。

日本語を使うべきではない例

もちろん日本語を使うべきではない場合もあることを書いておく

  1. ビジネス戦略上、海外マーケットをターゲットにしたプロダクトであること

  2. ビジネス戦略上、日本だがターゲットは非日本語話者がターゲットのプロダクトであること

  3. プログラミング言語の制約で著しい課題があること

cuteとかわいいの意味は違うんでその差分を入社した全員に説明するのはコストですよねーを長々書いた。