今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

ソースコード上の SQL 文

とある Web アプリケーションが、ときどき期待通りに動かない。処理の途中で DB からいくつかの情報をクエリで取り出し、XML を生成するときにそれを埋め込むはずが、あるはずの情報がひとつも XML に含まれていない。
修正は某氏にお願いした(といっても、もともとのソースコードは某氏が書いたわけじゃないので、これを読まなきゃいかん某氏も被害者ぽいんだけど)ので見なくてもいいんだけど、なんとなく気になってソースコードを見てしまったよ。そしたら、

    final String SQL =
            "SELECT * FROM " +
                :
            (ここんとこ延々と100行以上)
                :
            "(SQL文の最後)";

いや、一箇所に限らず、あちこちに final String SQL = が散りばめられている。こんなん、SQL文を管理するクラスを作ればいいのでは?もしかしてこれがフツー?(んなわけないよね?)
SQL に間違いがあるたびにコンパイルしなおしてたんだろうか。。。
ちゅーか、可読性醜逸!!
そもそも、なにかをクエリしようとするときに100行もの SQL 文を書かなきゃいかんのなら、テーブルを改善することでなんとかならんもんなのか?とか、そういうことを考えたりしないんだろうか?
なんちゅーか、そういうめんどくさいところとかややこしいところを頭を使って解決して、できるだけシンプルな形に落とし込もうと考えるのが、そういうところに体力を使わずに頭を使おうとするのが、プログラマにとって大切な資質なんだよなぁ。