カテゴリー
開発

まだまだ序の口 オブジェクト指向の怖い話

@ITで「オブジェクト指向実践者の集い 第2弾」のリポートがあったのでよんでみた。
bq.. @IT:オブジェクト指向、ホントにあった怖い話
第2回目となる今回のイベントは「失敗から学ぶオブジェクト指向?本当にあった怖い話?」をテーマに冠し、オブジェクト指向を取り入れたがための失敗談を参加者同士で共有しながら、「より実践的なオブジェクト指向とは何か」を学ぶ場とすることを狙った。

p.. そんなに長い記事でもないので、簡単に会の雰囲気の説明があっただけなんですが、その中で気になったのが・・・
bq.. 開発現場で直面した“怖い事件”をそれぞれ話すという趣向である。現場でソフトウェア開発に従事するエンジニアなら一度は直面するような不条理な事態(会社全体でオブジェクト指向は一切禁止、プロジェクト・マネージャがオープンソースの使用を許さない、1つのメソッドが600行?800行にわたるコードがまかり通る、などなど……)が参加者の口から次々に繰り出され、会場は爆笑の渦に包まれた。
p.. そうですか。600-800行のメソッドで笑いの渦ですか。ちっちっ、うちはVB 6 なのでJavaよりは冗長になりがちだけど1000行近くのメソッドはざらにありまっせ。
他にも、
* モジュールの平均は3000行ぐらい。でかいのだと2万行近くあります。こうなるとPrivateもGlobalとかわらないよ。
* さらにその数は10とか20のレベルではない。正確には数えてないけど、100は余裕で超えてると思う。
* オブジェクト指向を別に禁止していないのにオブジェクト指向で作ってない(笑)
* グローバル変数にコメントがついていない(まだ序の口)
* 他のモジュールに値を渡すときはグローバル変数にいれる(ぉぃ)
* 一つのグローバル変数をいろんな意味合いで使い回す(だからコメントが付けられなかったのか!)
* とにかくなんでもグローバル変数。引数で渡せるものですらグローバル変数。なんでよ。
* グローバルの巨大な配列が特にお気に入り。そして、添え字毎に違う意味に使われている。なんでわざわざそんなややこしいことするのさ?!
* さらに配列はグローバルとプライベートとローカルに同じ構造体があって、それをあちこちで代入しまくっていて、どれが何に使われているか、訳が分からない。
* そういう所に限ってコメントがない。
* エラー処理は一切入れないのが潔い(本当に入ってない)
* とにかくコピペだ。ロジックをまとめる気は一切無い。
* 同じようなマスターフォームをたくさん作ってある(一つのフォームにまとめろよ!)
* しかもまとめられないように、同じ事をやる関数が同じ名前になっていない。frm002Pasteみたいな感じでフォームの番号振ってある(涙)
* だから、マスター毎にコピーペーストのロジックが入れてあったりする。当然他の処理も同じ。悪夢だ。
* 人の名前が入ったモジュールがある。もうだめポ。
* 他のフォームに値を渡すときは渡すフォームの隅っこに隠したテキストボックスにいれる。中国雑伎団並にいろんな技繰り出してきます。
まだまだあるぞ!
* 消費税はソースに埋め込みで*0.05である。オプションにある税率設定は何??
* エラー処理にSTOP命令がいれてある。
* 関数の引数を調べてコメントを追加していたら、その引数は関数内で一回も使われていなかった。なら最初から渡すな!
* 関数の戻り値に正否が返ってきていて、変数にいれるけどチェックしない。ならばいっそCallでよべ。まぎらわしい。
* integer型の戻り値をBooleanに入れている。さらにそれで正否をチェックしている。
* コメントに「何かエラーが起きたら○○まで連絡してください」と入っている。そんなこと書くぐらいなら、エラー処理入れろ。
* コメントに「テストなので後で消します」と書かれていて、消されていない処理がある。テスト終わってないだろ。
* コメントに「わからないので××さんに確認」と書かれた処理がある。確認してー。
* そもそもコメントが嘘つきだったりする(おかげで詐欺にはひっかからない性格になれました)
まだまだ、山ほどあるが書ききれない。
これは、もはや嫌がらせだと思う。もしくは難読化によるリバースエンジニアリング防止か?!
あ、うちの会社の開発メンバーの名誉のために書いておきますが、元々うちのメンバーが作ったソースではありません。根性で動いているような状態のソースをうちらに渡されたのです。
開発全員で頑張って直していってますよ。
開発全員で苦労させてもらってますよ。
まあ、おかげで開発初めて半年程度で構造化プログラミングの限界を身に染みて感じられたし、オブジェクト指向的な開発の良さを早期に実感出来たので、いい勉強にはなりましたな(いや、今も勉強になってます。たすけてー)

この記事を書いた人: A-tak

A-tak.com(えいたっく どっとこむ)の管理人。
Apple野郎なおっさんでしたが、ちょっと最近のAppleには飽き気味。
A-tak.comは2002年2月から運営(前身のサイトは1999年3月から)。今年で18年目!

Youtube / Twitter / Mastodon / Facebook

コメントは受け付けていません。