何も考えない直訳ほどナンセンスな名付けはない
大規模PJでは画面IDを元にクラス名設計をする場合が多々あります。
それはそれで鬱屈とするのですが、それよりも厄介なのが画面名を直訳してクラス名をつける*1というパターン。
この“直訳”というのがミソで、例えば下記のような画面があったとします。
- ユーザ編集画面
- ユーザ更新確認画面
- ユーザ画像設定画面
- エントリ登録画面
- エントリ保存更新確認画面
- コメント新規作成画面
これが、こうなる。
- EditUserController
- ConfirmUpdateUserController
- ConfigureUserImageController
- RegistEntryController
- SaveUpdateEntryController
- NewCreateCommentController
さて、ツッコミどころが何個見つけられたかな?!
おかしいのはクラス名だけでなくて、メソッド名も往々にして悲惨なことになってたりします。例えば、
- EditUserController#EditUser()
「ユーザ編集画面でユーザ以外の何を編集するんだよ!!」と言わずにはいられないこのセンス。Edit()で十分だと思いませんか。思ってください。あとこういうのも過去に見たけど目眩がした。
- EditUserController#Save()
なんでわざわざ単語変えるんだ?!
え? ボタン名が「保存ボタン」だからだって?
……そうか、お前がそう思うんなら、そうなんだろうな。
けどこのPJで一番笑えないなぁと思うのは「直訳するときは単語のブレとかがあるといけないからPJ用の単語表を見て対応する単語を使ってね♥」てルールがあるという点に尽きると思う。
その辞書に「保存-Save」「登録-Regist」「設定-Configure」「編集-Edit」「更新-Update」と次々単語が追加されて、それらが機械的に消化されていく。本末転倒とはよくいったものだなぁ……と。