ひどすぎるネーミング

UKTKKNSHINF

こういう名前の変数が出てくるのだが、意味わかる?
答え:受付禁止情報

今読んでいるPL/SQLコードは本当にひどい出来なのだが、その中でもネーミングが群を抜いてひどすぎてむしろ笑えてくるので、ここでさらしてみたい。

先ほどの例でわかると思うが、悪しきネーミング習慣である子音母音抜きの嵐である。変数名だろうが関数名だろうがこのルールで命名されているので、暗号文を読んでいるような気分になる。

他には、例えばこんなのがある。

SKSI
作成
HNKN
変換
KKT
確定
CHKN
中間
DTM
Datetime
DTA
Data

こうして見ると、ktkrやwktkとなんら違いがない。

"作成"のような、比較的簡単に対応する英単語が見つかるものまで日本語子音母音抜きで書くという徹底ぶり。でも"情報"はINFだったりする統一感のなさ。そしてこれらが単独ならまだしも、複合して出てくるから始末に負えない。なぜなら、単語間の区切りが無いからだ。例えば、YYKTRKSUKTKSYSIINFHYJまでくるととても読めたものではない*1

また、英単語そのままでよいはずのところも意味不明の改悪をしている。INFは一般的だからいいが、DTMと書かれたら普通は別のものを連想するだろう*2。特にDataをDTAにするところなんて神懸かっている。"a"を一つ抜くことで誰が幸せになるというのか。

俺は変数名に日本語のローマ字読みを使うことは反対しない。しかし、普通にローマ字書きすればいいのに、なんでこういうマネをするのか。

おそらく、PL/SQLの識別子には30文字までしか使えないらしいので極力短くしているのだろう。しかし、PL/SQLはパッケージを使えるんだから、それを利用してもっと責務を分割してわかりやすい構成と名称にすることはできたはずだ。数百行の関数が頻出しているのを見れば、そうできないはずがない。コード全体の設計のまずさが、ネーミングにまで悪影響を及ぼしている。

そう、ネーミング以外にも、長すぎる関数、無意味なコメント、変更箇所をコメントアウトして残す、などなど技術者を詐称するカスがやりがちなアンチパターンを一通り取りそろえているのだ。それゆえに、なにか事情があってこのような有様になっているのだろう、と好意的に考えられない。おそらく単に担当者が無能なのである*3

ただでさえ読みづらいコードを必死に頭に収めようとようとしているのに、こうした名前の変数の意味を解読している間にそれまで読み込んだ処理内容が頭から抜け落ちてしまう。恐ろしく困難なミッションである。そのくせ、これを成し遂げたところで自分のキャリアにとって何のプラスにもならない。何より、この妙なネーミングに適応するのがいやだ、脳が汚染される気がする。

ここは地獄だ。

2009/07/05、追加記事書きました

*1:予約取消受付詳細情報表示

*2:そもそも、その変数が日時型であることは宣言部分でわかることで、変数名に含める必要はない。悪名高きハンガリアンシステムハンガリアン記法と同じだ。

*3:優秀な担当者がどこぞのバカが決めたくだらないルールに縛られた結果、という可能性もある