派遣PG時代の思い出
ログインする際にユーザーテーブルと結合した2つのテーブルから全データを引っ張ってくる仕様だった。普通はジョインして1クエリで引っ張ってくるのが、コボラー社員様がユーザーテーブルの全データを引っ張ってきて1レコードずつサブの2テーブルにクエリを投げろと言って聞かなかった。
2010-05-11 19:16:19ちなみにユーザー1万人。ログインするだけで2万1回クエリが投げられるので、ログインに5分かかりログが10メガ増えた。当然後でパフォーマンス問題になって怒られたらしい。
2010-05-11 19:16:44別の某社ではクラス名の命名規則が、プロジェクトコードネーム3桁、機能大分類を表す数値3桁+なんだったかのアルファベット1桁+機能小分類の連番4桁+アルファベット1文字が機能種類だった。クラス図書いても何やってるか1mmもわからない。コボラーを敵と認識したのがこの頃。
2010-05-11 19:17:08また別の某社ではSwingアプリの開発を引き継いだが、前任者が「コードを共通化してください」という言葉を勘違いし、一つの画面クラスに全ての画面の機能を持たせ、メソッドの引数でどの画面として動くかを切り替えるという凄まじい実装だった。全メソッドが画面名受け取って中でif分で分岐。
2010-05-11 19:18:01画面は10個くらいだったか。その内7個くらいがJTableを持ってるので、1画面にJTableが7個宣言されていた。表示してないけど全部インスタンス作ってるし。しかもそのインスタンスが10個あるので70個のJTableインスタンスががが
2010-05-11 19:18:46泣きながらコードを弄っていたが、コード監査してた人がそっちに突っ込まず、僕が変数に初期値を入れなかったことを「悪質」と言われたので腹立ちすぎて早退し、派遣会社に電話して月末で抜けた。ゴミコードを読めるようにしてるのに悪質呼ばわりするような人間なんかと仕事出来っか。
2010-05-11 19:19:09また別の神奈川の某社。世にも悪名高い、コードを修正したらコメントアウトして元のコードを残せというルールだった。あれはコードをうんこにする一番効率の良い方法だと思う。インデントすら直せないんだから。
2010-05-11 19:19:24コードを修正したらコメントアウトして日付と自分の名前を書くのだが、コードはどんどん醜く膨れあがり、ルールがリファクタリングを拒む。それは巨大なうんこの山だった。うんこの山に新しいうんこを盛りつけてはそこに日付と自分の名前を書きこんだ小旗を立てるような仕事だった。
2010-05-11 19:19:41僕がこのプロジェクトに参加したのは途中からで、フェーズ2だった。最初に僕がしたのはフェーズ1のコードのUMLを書くことだった。ユースケースも含めて。あんたら要件定義せずにプロジェクト始めたの?
2010-05-11 19:20:27ユースケースはでっち上げたが、クラス図で苦しんだ。1画面に1クラスしかないのでそう書いたら「もっと詳しく書け」と怒られた。事実を書いたのに。嘘を書けばよかったのだろうか。そう言ったらプロジェクトを外された。わーい。
2010-05-11 19:20:40他にも沢山あるけどすぐに思い出せないので番外編。某T社で保守やってる友人から聞いた話。テーブルにカラムが一つしか無くて、char型だったそうだ。0から○バイト目まではIDで、×バイト目までは名称で、△バイト目までは○○で、みたいな造りで泣いたとのこと。僕も泣く。
2010-05-11 19:21:45神話になれますね。尊い自己犠牲の精神に涙が止まりません。 RT @matan_go: @vjroba 自分は即逃げ出しちゃいましたがシステム自体は絶賛稼働中らしいです。保守チームはバチカンに聖人認定されるんじゃなかろうかしら。
2010-05-11 21:32:52某社で手伝いに呼ばれて行った。帳票を担当することになったが僕の前からやってた人に「僕のコードを参考にしてください」と言われたが下手すぎて絶句。帳票1枚ごとに3000行クラスが書かれていた。僕の前任者はこのソースに耐えきれず辞めたそうだ。
2010-05-11 19:27:48この人にソースを書かせちゃいけないと思いフレームワークを作ってSQLと設定ファイルだけ書かせた。それは間違ってなかったがSQLすら目も当てられない代物で、後に若い子達が1ヶ月がかりで直してた。ごめん、僕がやるべきだった。
2010-05-11 19:27:58もちろんです! RT @yukung: もちろん残りxxバイトはFILLERですよねw RT @vjroba: 他にも沢山あるけどすぐに思い出せないので番外編。某T社で保守やってる友人から聞いた話。テーブルにカラムが一つしか無くて、char型だったそうだ。0から○バイト目まではI
2010-05-11 19:32:56FILLERで思い出した。DBのカラムにCOL20、COL21・・・とかあって、「何ですかこれ?」と聞いたら「予備カラム」と言われた。あんたらALTER TABLE知らないでシステム作ってんのか。
2010-05-11 19:34:28まだ仕事あるんでとりあえず打ち止め。まだ色々あるけどすぐに出てこないんで思い出したところで書きます。派遣時代は「僕より腕のいい人と仕事をして打ちのめされたい」ってのが夢でした。今はそれがかなってそれなりに幸せです。
2010-05-11 19:41:22大事なことを書くのを忘れてた。修正をコメントアウトして残せな会社が、あのうんこコードをオープンソースにすると言い出して頭を抱えた。あんなうんこ山に僕の名前があったら今後の仕事に差し支える。
2010-05-11 19:51:20しばらくたってそのシステムのセキュリティに高木浩光先生が突っ込みを入れていたが、「甘いですな、先生。このシステムのダメなところはそんなもんじゃないですよ」と思ってた。
2010-05-11 19:52:22某社の仕事は絵に描いたような朝令暮改だった。朝に言われた作業を完了したら、夕方「ごめん、それ要らなくなった」と言われるのがしょっちゅう。当時「一つ積んでは父のため。二つ積んでは母のため」が頭に浮かんで離れなかった。夕方に鬼に崩されまくりですよ。
2010-05-11 19:59:36最終的に僕はそこでPMに酷く嫌われて辞めたが、打ち上げには呼んでもらった。そこで僕の書いたコードは全部消えたと聞いてさすがにがっくり来た。だったら最初から遊んでりゃよかった。
2010-05-11 20:01:03そのプロジェクトはPM様が要件定義をきちんとせず、特に偉い人の話だけ聞いて現場の意見をまったく聞かなかったため、完成したものの全く使い物にならず、全部のコードがお蔵入りになったそうだ。なんだかなあ。
2010-05-11 20:02:11