ダメコード収集開始

通常、一度開発したアプリケーションを1から作り直すことはない。そのアプリケーションがどんなにできが悪くても、作り直さない。なぜなら、どれほど悪夢めいて畸形じみて胸糞悪くなるようなプログラムであっても、それを作るために金と時間を使っているわけだし、いくつもの試験をくぐり抜けてバグをつぶし、実際に動作しているという実績があるのだから。しかし、そのリスクをあえて受けて作り直しを断行したプロジェクトがある。

いま、俺がいるところである。

先にあげたようなリスクを飲んでまで実施を強行させてしまうのだから、このアプリケーションのデキおよびその保守体制の悲惨さといったらもう、筆舌に尽くしがたいものがあるらしい。そんなことはコードを見るまでもなく明らかだったし、俺はとにかくできの悪いコードを読むのがイヤだったので、これをずっと対決を避けてきた。

しかし、保守体制が最悪なのはすでに書いたとおりで、当然ながらまともな設計書は無い。既存の設計書を受け取るときも「メンテナンスが追いついていないので、記述が正しくない場所がある」という親切な忠告を受け取っている。よって、信用できるのはいま動いているアプリケーションのクソッタレなコードだけだ。ええぃ、やむを得まい!!

・・・。
・・・・・・。
・・・・・・・・・。


おあああぁああぁぁぁぁぁぁああああぉああぁあめあああああぁああ!!!!!!

きた・・・。
久々に来たよ、このインパクト・・・。
怒りと悲しみと絶望とやるせなさが同時に去来するような、このゲッソリする感覚・・・。
過去の仕事で見てきたダメコードの集大成ともいうべきクオリティ!!だから見たくなかったんだー!!

おかげで、コード解析を始めた先週から急激に仕事の進捗が悪くなった。とにかく、読めない。技量的には問題無いのだが、精神が受け付けない。でも、仕事はしないと・・・困った。

一計を案じた。どうせなら、楽しめるような要素を加えよう。

そんなわけで(くそ長い前振りだな)、以前からやろうやろうと思いつつ実施していなかった、ダメコードの事例収集を行うことにした。今回のコードはネタの宝庫だ、あっという間に1コンテンツつくるのに足りる情報が集まるはず!これなら、吐き気をもよおすような発狂したコードを見ても、「よし、ネタだ!」と前向きに対処できるに違いない!そう信じたい!

本日から早速開始したのだが、ダメだと思うところを逐一挙げていくと、それをメモるだけでバカにならない時間を使ってしまうので、結構容赦した。それでも、今日一日で30件ほどのネタが集まる。さすがだ、期待以上の収集ペース。

今回集めた事例は、そのうちまとめて我がサイトにアップしたいと思う。興味がある奴は、しばし待て。

とりあえず先行版として、本日取れたてのダメコードをさらす。正式版はツッコミも入れるけど、今のところは勝手に考えてくれい。コンパイルしてないので、コンパイルエラーになるようなところは俺のミス。

public boolean checkUpdateCol(String str) {
    boolean result = false;

    if(str == null || "".equals(str)) {
        return result;
    }

    Hashtable ht = new Hashtable(64);
    ht.put(UPDATE_COLUMN_NAME, "");

    return ht.containsKey(str);
}

あ、今日は案外解析が進んだ。