みたいに変数に番号を振ることはよくある。べつに悪い作法ではない。やりすぎると恐ろしいことになるよというお話し。実際にコードを見た方が早い。言語はPerlで実在するシステムで今も動いているものだ。$sql1,$sql2,$sql3,$sql4,$sql5,$sql6,$sql7,$sql8,$sql9,$sql10,$sql11,$sql12,$sql13,$sql14,$sql15,$sql16,$sql17,$sql18,$sql19,$sql20,$sql21,$sql22,$sql23,$sql24,$sql25,$sql26,$sql27,$sql28,$sql29,$sql30,$sql31,$sql32,$sql33,$sql34,$sql35,$sql36,$sql37,$sql38,$sql39,$sql40,$sql41,$sql42,$sql43,$sql44,$sql45,$sql46,$sql47,$sql48;目がチカチカした?これに続く次の行が以下だ。$ary1,$ary2,$ary3,$ary4,$ary5,$ary6,$ary7,$ary8,$ary9,$ary10,$ary11,$ary12,$ary13,$ary14,$ary15,$ary16,$ary17,$ary18,$ary19,$ary20,$ary21,$ary22,$ary23,$ary24,$ary25,$ary26,$ary27,$ary28,$ary29,$ary30,$ary31,$ary32,$ary33,$ary34,$ary35,$ary36,$ary37,$ary38,$ary39,$ary40,$ary41,$ary42,$ary43,$ary44,$ary45,$ary46,$ary47,$ary48;目眩がした?解説はいらないかもしれないが、、、、DB接続を行うプログラムを書いたことがあれば、これらの変数がどのように使われるか想像はつくだろう。この宣言の後に続くだろう怒涛の展開も。これが書かれていた実際のソースではサブルーチン内で上記の宣言がされており、そのサブルーチン自体が数百行、ファイル全体では数千行という代物だ。グローバル変数も多用されている。クソプログラムを見るたびに思うが、大事なのは「なぜこうなったか」というプロセスを考えることだ。書いた本人を呪うだけでは成長はない。自分も同じ轍を踏まないためにも何がこうさせたのかを知ろうとしなければいけない。そこからベストなメソッドを考えよう。最優先するのは自分の精神衛生だ。クソプログラムTweet関連記事クソプログラムについて語ってみた自分がメンテをしてるクソプログラムがある。作ったのは自分ではない。...DPCデータを取り扱うDPCデータの解析処理するプログラムに取り組んで得た知見などのメモです。