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

11年前のJavaのプログラムのデバッグに苦労

2008年2月22日

中国からの攻撃?に対処していて、 この「パソコン生活つれづれノート」の更新をする暇がなかったのだろうか、 あっという間に今週は過ぎていってしまった。

このところ、なぜか古い古〜いJavaのプログラムを見なければならない機会が増えている。 Javaのプログラムといっても、古いものは随分古い。

1つは新幹線の中でのプログラミングは効率が極度に上った の中に出てくるJavaプログラムで、最終更新が2002年のプログラムである。 もちろん、Eclipseは利用していないし、他人が作ったプログラムである。 どうも、今後、このプログラムの回収、再利用をしなくてはならなくなった。 どうしよう、困ったな、と思っても仕方がない。 まあ、何とかなるさ、英語でやりとりしないといけないようだが。

さて、昨日、もっともっと古い、1997年のJavaのプログラムのデバッグをした。 太古の昔、前世紀のプログラムであり、Eclipseに入れてみたら、 遺物、遺物、遺物、という警告メッセージが沢山でてきた。 まあ、それなりに動くのであれば、警告メッセージに対応していたらきりがない。 とりあえず、エラーでどうにもならない個所だけ直して、動かしてみた。

画面が完全に崩れる。指定しているレイアウトに並ばないというトラブルは 確認できたので、ソースを見てみた。何とも酷いソースプログラムである。 トリッキーなことをやって、何とか正しい位置に表示されるようにした形跡があるが、 そんなレイアウト指針に反することをやっていたら、 Javaのバージョンが上るとともに、何が発生するか分ったものではない。

ここで、しばし考えた。まず、このプログラム、どのくらいの時間で直せるか。 まあ、半日程度で直せないようなら、GUIだけ全部書き換えた方が良いように思う。 GUIだけなら、あまり脳味噌を使わなくてもできる作業で、 画面の複雑さに作業時間が比例するに過ぎないから、 正しいというか、まともな、正気なコーディングをすれば良いだけである。 といっても、GUIを書き変えるとなると、1日ではちょっときついか。 雑用、割り込み、気晴し、その他もろもろのことを考慮すると、 どうしても、2〜3日もかかる。そんな長時間のプログラムはやってられない。

ということで、とりあえず、やむなく、ソースに応急処置をして誤魔化す方向で作業を始めた。 Javaにはレイアウトというのがあって、色々な部品の並べ方を指定すると、 あとはかなり適当に、いい加減に、ずさんではあるが我慢できる、我慢するしかない 程度のレイアウトをやってくれる。 満足できるものではないが、でも、現実にはこのレイアウト機能を使うことになる、 というかそれしかあるまい。

このプログラム、Javaのレイアウトの中でも分り難い、面倒なレイアウトと言うことで あまり評判の良くないグリッドバッグレイアウトを使っている。 ある程度複雑なレイアウトにしようと思うと、どうしてもこのレイアウトを使うことになる。 そして、そこでトラブルが発生しているのである。

面倒なレイアウトを面倒に使っていたので、そういう使い方を止めて、 横着な使い方をするように、ごちゃちゃ指定していた インスタンス変数などを捨てた(とりあえずコメントアウト)。 すると、何とか、一見まともに動作しているかのように動くようになった。 元もと何とか蘇生だけが目的なので、このあたりで止めることにした。

いつもの樣に、「プログラムを消すとバグも消える」という原則通りだった。

当初予定は、昨日の午後の4時間程度で済ませようと思ったのだが、 夕方になっても出来ず、夜になってしまった。 バグの応急処置に6時間程度もかかってしまい、その後の整理も含めると、 昨日の午後のほとんどはこれに費やしてしてしまい、普段の仕事が遅れてしまった。

はて、このプログラムは誰が作ったのかと思ったら、1997年の自分であった。 何て奇妙な危ういコーディングだろうと思ったらこの様だ。 まあ、確かに、当時は変な書き方をしないと動かないことも普通だった。 Javaも進化(変化)し、Javaプログラミングも変化してきたものだ。 初心者自身は、変化、老化しているだけに過ぎないようだが。

6x6超入門ナンプレ

9x9対角線ナンプレ


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