変数名に日本語を使おうと思った経緯
こんにちは。秋になると柿を200個食べるWebエンジニア、すずきゆーだい(@szkyudi)です。
最近、個人開発としてリアルタイムで変更を確認できる多機能な割り勘電卓「ばりわるくん」を作りました。
このアプリケーションでは、似たような性質の変数が多く存在するため、英語でどのような区別をつけていけばよいかわからなくなりました。
そこで、いっそのこと変数名を日本語にしてしまった方が楽になるのではないかと考え、導入に至りました。
必要な変数と使った変数名たち
まずは、このアプリケーションでどのような変数が必要になったかを紹介して、実際の変数名を見ていだければと思います。
実際にスマートフォンなどでアプリケーションを触っていただきながら見ていただくと、より理解していただけると思います。
必要になった変数たち
- お会計の金額
- 支払人数の合計
- 普通に払う人(自動で計算される)
- 支払金額
- 支払人数
- 支払金額の合計
- 固定の金額で払う人(任意で追加できる)
- 支払金額
- 支払人数
- 支払金額の合計
- 普通に払う人に対する比率で払う人(任意で追加できる)
- 比率
- 支払金額
- 支払人数
- 支払金額の合計
- 切り上げ単位
- 支払金額の合計
- お釣り
日本語を見ただけでも「支払」や「金額」、「人数」がゲシュタルト崩壊しそうです。
最初はこれらを bill
や payment
、 payerNum
などを使って表現しようと思ったのですが、英語力が底を突きました。
日本語で定義した変数名
※実際には Recoil の atom()
や selector()
で定義しています。
const お会計 = 30000
const 支払人数 = 8
const 一般請求額 = 3200
const 一般支払人数 = 3
const 一般請求総額 = 9600
const 固定支払金額 = 3000
const 固定支払人数 = 2
const 固定支払総額 = 6000
const 割合支払人数 = 3
const 割合支払比率 = 1.5
const 割合支払金額 = 4800
const 切上単位 = 100
const 支払総額 = 30000
const お釣り = 0
こんな感じで日本語で定義しました。
また、一般支払金額を自動計算させるためには、お会計と固定支払総額の差額が必要だったりもしたので、こんな変数も作りました。
const お会計と固定支払総額の差額 = お会計 - 固定支払総額
日本語をそのまんま変数にすることで快適になりました。
変数名に日本語を使った感想
最初、英語で実装していたときは、コードを見返したときに「この変数ってどんな変数だっけ?」とコードを読み返す必要があり不便だったのですが、日本語変数に切り替えると、変数名から直感的に中身がわかるので、快適にコーディングすることができました。
『これぞリーダブルコードでは?』と思ったりもしました。
ひとつだけ微妙な点を挙げるとすると、1文字目を入力しないとエディタの補完が効かないので若干不便でした。変数名のプレフィックスとして jp
などをつけてもいいのかなと思ったりしました。
どういった場面で変数名に日本語を使うか
チーム開発の現場やグローバルな現場であれば、英語の変数名を使いつつ変数の上にコメントを記述して説明するのがセオリーのような気もします。
また、変数名に日本語を使って発生したトラブルを解決する情報というのはインターネット上に少ないので、未知のバグが発生したときに困ります。
そのため、日本語変数は個人開発にとどめて使うのが無難かと思います。
まとめ
ぜひ「ばりわるくん」を使ってみてください!