前書き
世間から嫌われているシステムハンガリアン記法を少しだけ擁護します。
またJavaScriptみたいなガチガチに型を意識させない言語を想定しています。
追記
コメント欄で教えていただきましたが、本記事で使っている記法はシステムハンガリアン記法ではなくイングリッシュ記法と言われるものだそうです。
という訳で、本文のシステムハンガリアン記法はイングリッシュ記法だと読み替えてください。
なお、システムハンガリアン記法は事前知識がないとなんだこれ?となりイングリッシュ記法よりも分かりにくいなと思いました。
イングリッシュ記法という上位互換がある以上、わざわざシステムハンガリアンを使うことはないでしょう。(手のひら返し)
本文
型は適切な変数名で分かるからいらん。
邪魔
見づらい
型が変わったときに変数名を直すのダルい。
システムハンガリアン許さん。このクソを擁護するやつも許さん。
と、思われているだろうシステムハンガリアンですが
私はすべてが駄目で一切使ってはいけない。とは思いません。
例えば次のようなコードはシステムハンガリアン記法を使うのがシンプルで分かりやすいと思います。
(少なくとも私は。)
const today = new Date();
const strToday = `${today.getFullYear()}年${today.getMonth() + 1}月${today.getDate()}日`;
today, strTodayは宣言後にテキトーに使われると考えといてください。
DBに登録されるとか、画面に表示されるとか、計算に使われるとかするんでしょう。きっと。
要するにシステムハンガリアン記法は、
型が違うけど名前が似てしまう!いい名前が思いつかん!って時に使うと、思考停止で命名できて、型の違いも分かって、普通にシンプルで、変数名も短くていいんでない。
ということです。
(ただtodayをdtTodayと書くのはさすがにないと思います。)
以上、終わり。
システムハンガリアン(笑)みたいな考えだと、仮にシステムハンガリアンが有用な場面が来ても見落としてしまうかもしれないので一応書いておきました。