思い出してしまったゴミコード

昨日のエントリでハンガリアンがーとか書いたけど、もっと変な所で困るコードもあるよなーと、考えていたらこんなのを思い出した。

明細データに一連番号を付番するような処理で、一連番号をstrSeqNumとか宣言する人がいる。最終的には文字列として編集された固定長レコードを一般のファイルとして出力するようなプログラムなので、文字列型で宣言しちゃったんだろうけど、内部では加算処理しなきゃならんから文字列型じゃ困るんだ。で、どうするかというと

'言い訳:Format関数の書式定義と値の引数の順番はうろ覚え。逆だったかもしれない。
strSeqNum = Format("000000000000",CInt(strSeqNum)+1)

こうw そして、Integerなので桁数が文字列長に満たなかったりして、件数が多い日にアウトになったりする。こーゆー書き方をされると、システムハンガリアンを使おうがOption Strict Onを使おうがお手上げだw

こーゆー稚拙なコードが出来上がってしまう背景には、コードレビューをやらない文化と、単価の低い若手(非熟練者)にやらせる文化がある。日本のIT技術者におけるプログラマの単価というのが異常に低く設定されているから、こんな事になるんだ。もっとちゃんと金はらえよ!