ホームページ目次前の話次の話

画面表示を自分で管理したがる困ったプログラムに四苦八苦

2008年10月4日

秋であり、さまざまなイベントが忙しい季節になり、出掛けることが多い時期である。 週末に出掛けるだけではなく、仕事で、あるいは勉強、研究、息抜きなどで、 あちこちに出掛けたいところである。

先日は、某大学から声がかかってしまい、のこのこと自動車工場を見学に行った。 生産ラインには、類似車種しか流れていないが、1台毎に車種が違う。4ドアもあれば、 5ドアがあったり、ヨーロッパ仕様、アメリカ仕様など、とにかく違うのが次々に流れている。 いや、実は同じのを流すと生産性が落ちるから、適当に混ぜて流しているのだと。

一般見学コースだけなら見てもしかたがないと思っていたが、それはそれ、裏から手を回す人がいたので、 見学コースから外れたところも見てきた。組み立てに関してはずいぶんロボットの割合が増えたのだなと思った。 あまり詳しく書くと問題になっちゃうだろうから、このあたりで止めておこう。

普通の見学でないこともあってか、工場について最初に案内された部屋に戻ると、 プレゼントの車が用意されていた。 さすがに高級車ではなくて、コンパクトカーであったが、これは特別だからぜひ持ち帰ってくれと言われた。 これは私物化してしまおう。

そんなことばかりなら良いのだが、例によって困ったプログラムの相手をせざるを得ないことがある。 汚いプログラムであることは分かっているが、Javaのアプレットを、アプリケーションとしても動かせるように、 ちょっとだけ変更する作業が飛んできた。もちろん、そんなことできません、と言ってもよかったのだが、 普通ならちょこちょこっと作業するだけでできる。

汚いプログラムであることを考慮して、10倍位時間がかかると予測して見積りし、作業を始めたのだが甘かった。 単純にアプリケーション、つまり、JFrameを使って、その中に貼り付けたら、見事に動かなくなった。 いや、もっと正確にいうと、すべての画面は作成されているのだが、表示されないのだ。

原因は最初から予測しているとおりで、Threadの問題である。普通にボタンを押すだけのようなところでさえ、 Threadを使って管理したり、まことにもって複雑怪奇な方法で画面切り替えから、 1画面内の細かい時間間隔管理までをやっているのである。 論理的なスパゲッティプログラムは、まだ論理を追いかければ何とかなる。 しかし、勝手にThreadをでっち上げて、本来システムに任せて昼寝していれば確実に動く部分まで 頑張って管理するプログラムは始末が悪い。

まあ、せめてもの救いは、このプログラムが社員とか、仲間が書いたものでは無かったことである。 アプレットで動作していたのも偶然であろう。Eclipseでデバッグしようとすると、 アプレットでもうまく動作しないことが多いのである。 今まで動作していたことが奇跡のようなプログラムである。

そんなプログラムの修正なんだが、ふ〜む、どこにどんな仕掛けを入れれば良いか、なかなか分からず、 2日間が過ぎてしまったが、何とか探し当てることができた。 何とか動いたので、後はできるだけソーッと最小限の変更を加えておしまいにしたい。

まるで、宝探しであったが、そういうのはミステリーやアドベンチャー小説を読んでいるときだけで充分だ。 プログラムは、頭が悪くても、努力しなくても、ボーッとしていても、考えなくてもちゃんと動作するように 書くのを目指しているのに、見ているだけで脂汗が出てくるようなプログラムは来ないように願っている。

ところで、最初に書いたプレゼントされた車だが、同行者全員へのプレゼントだった。 とくにライトは特別仕様になっているので、後で説明書を読んで欲しいとのことだった。 ということで、引き上げる時間になり、その車をカバンに入れて、そして新幹線で帰ってきた。 この車は、「ちょろQ」の改造車なんだって。


Tシャツ製作ファクトリー

役に立つ!面白い!
ニュース&リンク
総合サイト Okazaki.gr.jp


ホームページ目次前の話次の話