マイクロソフトがハンガリアン記法を推奨しないわけ
Joel on Softwareの間違ったコードは間違って見えるようにするより。
追記:Joel on Softwareの日本語インデックスページはこちら(http://local.joelonsoftware.com/mediawiki/index.php/Japanese)
なるほど、もともとハンガリアン記法の概念が違ったのか。ま、よくよく考えて見れば現代のプログラミングって統合開発環境を使うことが殆ど*1だと思うので、その変数の型がなんだって別に大した問題ではない。……なぜならマウスを変数の上に置けば型が分かるから。そんなことよりも何の目的でその変数が宣言されているかが分かったほうが良いわけだよね。
使い捨ての変数ならともかく、フツーに
String str = "";
とかで宣言された変数が使いまわされてるメソッドとかはどうなのよ。みたいな。
これは単なる愚痴だけど、現在参画している案件では(先日の記事でもちょっと書いたけど)、WEB上から検索条件を指定して、結果を表示するってシステムなんだけど、DBへの接続へはSQL文の定数を切って、検索条件に合わせてそれらの定数を組み合わせている。
String WHERE_NAME = "AND NAME "; String WHERE_AGE = "AND AGE ";
といった定数を使って、
String sql = ""; // 処理が続く // この間に上記のsqlにSELECT文などが追加されていく // 検索条件として値を入力したならば、値が入っている if(name != null) { sql+=定数クラス.WHERE_NAME; } if(age!= null) { sql+=定数クラス.WHERE_AGE; }
こんな感じでSQL文を組み立てているのだ。String型に対して何回も文字列の連結をしようとしているところで相当アウト((っていうかどんだけ素人なんだよ(^'^)))なんだけど、それは置いておいて。
一般的にSQL文を発行する時に、毎回決まった形の文を発行できない(上記のように検索項目によってWHERE句が変わってくる)場合の一般的なSQL文の作り方ってどうなってるんだろう。
例で書いたように定数を組み合わせてやるんだろうか? ……どうもダサい気がして仕方ないんだよね。もっとスマートな方法があるんじゃねーかって気がしてならない。