Diary?

2009-03-06
Fri

(20:50)

病み上がり早々に見たソースコードがダークマター以外の何者でもないというのは、精神衛生上非常によくない。一体何が凄かったのか、かいつまんで書いてみる。

まず最初に次のようなユーティリティクラスがあるとする。というかあった。

public class BizDateFormatter {
    /**
     * 和暦変換。
     * 引数のオブジェクトから日付メンバを取り出し、WYYMMDD形式の文字列にして返す。
     */
    public static String toWareki(SomeObject aObj) {
        //実装は略(諸事情により結構長い)
        //ちなみに他のメソッドはない
    }
}

これだけなら別に良かったんだが、次のようなクラスがあるのを知ってのけぞった。

public class BizDateFormatter2 {
    /**
     * 和暦変換。
     * 引数のオブジェクトから日付メンバを取り出し、をWYYMM形式の文字列にして返す。
     */
    public static String toWareki(SomeObject aObj) {
        //BizDateFormatter#toWarekiのコピペ改変コード。一致率は90%ほど
        //そのメソッドを呼んで戻り値をちょこちょこと修正とかいう発想はないらしい
    }
}

この時点でケツと頭が四つに割れそうになったが、この後さらに BizDateFormatter3, BizDateFormatter3s, BizDateFormatter4, BizDateFormatter4s といったふざけたクラスとコピペメソッドが出てきて、なんかもうどうでも良くなった。これらの中身は/区切り日付処理が入ってるとかそういう違いがあるだけで他は全部コピペ、コメントも当然コピペ、そしてそれはソースの内容と合ってない。コーディングの掟では「コピペ禁止がもっとも有用なコーディングルールかもしれない」というネタがでてきたけど、そういうネタが成立するには笑うに笑えない現実が必要で、今日直面したこれはその一例だ。

他にも「2000行のメソッドを長いからといって分割させたら『カット&ペーストで別メソッドにして、コンパイルエラーが出なくなるまで分割後のメソッドの引数を増やす』という大技を繰り出された」など、傍から見てる分には面白いけど当事者としては己れが殺人鬼にならないように自制するのが大変な事例は腐るほどあり、まともなコードを書くつもりのない奴とそのような戯け者を解雇しない経営者をアフガンの地雷源に放り込まない限り俺は長生きできないなと思ったので日本政府は殺人許可証を俺に発行しろ。

あとこれは今となってはどうでもいいが、俺と同じチームに投げ込まれた技術者というか技術者モドキの中で一番凄かったのは俺がソースコードの記述例に「中略」の意味で書いた「...」とか「:」をそのまま書いて「コンパイルエラーになります」とか言ってきた奴で、そいつの尻拭いで俺は徹夜作業とかをするハメに陥ったりしたのだが、まあ今となっては笑い話だ(厳密に言えば、このような人生の浪費としか言えない体験はネタにでもしないと元が取れない)。

Creative Commons
この怪文書はクリエイティブ・コモンズ・ライセンスの元でライセンスされています。引用した文章など Kuwata Chikara に著作権のないものについては、それらの著作権保持者に帰属します。