体験を伝える―『ガジェット通信』の考え方

面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて]

納涼!ほんとにあった怖いコードの話

納涼!ほんとにあった怖いコードの話


今回はshobunoさんのブログ『shobuno’s blog』からご寄稿いただきました。
※すべての画像が表示されない場合は、http://getnews.jp/archives/403527をごらんください。

納涼!ほんとにあった怖いコードの話

納涼!ほんとにあった怖いコード(by CodeIQ*1×はてな)

*1:「CodeIQ」 『はてなキーワード』
http://d.hatena.ne.jp/keyword/CodeIQ

システム開発の仕事を始めて、はや二十年・・・

ごく普通の退屈なおじさんエンジニアですが、長年やっていると自然とこの手のお話はたまっていくものの様で・・・

今宵はいくつかご紹介しましょう・・・

■念のためロジック

今からおよそ20年程前。私が駆け出しだった頃のお話です。

当時のシステム開発といえば、大型のコンピュータで、COBOL(コボル)という言語を使うものが主流でした。(多分 (^_^;)

COBOLのプログラムの特徴は、上から下へ長々と処理手続きを順番に書く・・・

サブルーチンという機能は有り、一部は使っていましたが、基本的には上から下へ、長々と処理を書くというやりかたでした。

ある意味読みやすい、ある意味非効率な書き方でした。

1つのプログラムで、1000行2000行は当たり前、酷いものになると1万行以上という、他の人から見ると何がなんだか分からない様なモノが一杯有りました。

当時私は、既存の銀行システムの一部を修正しました。

修正内容自体は簡単で、有る条件のデータが入ってきたら、出力ファイルのエリアに有る値をセットするというものだったのですが・・・

或るプログラムで、その修正をして、テストをしてみた所、出力ファイルが元のままで、修正した結果が出てきませんでした・・・

おかしいなぁ・・・

5000行もあるプログラムを紙に出力してみると、確かに私が直した所はちゃんと入っている・・・

良く良くソースコードを見てみると、私が書いたコードの暫く後に、同じエリアに、元の値をセットし直している箇所がありました・・・

えっ?

あわてて、その処理を消して、もう一度書きなおしてテスト・・・

結果は同じでした。

ソースコードをもう一度出し直してみると、私が書いた後に、更にそれを打ち消すコードが・・・ (^_^;

気をつけて全部見直すと、驚いた事に全く同じロジックが、4箇所に書かれていました・・・

このプログラムの作者を探して、直接聞いてみました。

私「どうしてこんな事をしたんですか?」

担当者「いや、その・・・。念のため・・・(照れ笑い)」

私「・・・(^_^;」

このコードを私たちは「念のためロジック」と名付けました・・・

■ 恐怖のIF文

これも、「念のためロジック」と同じ頃のお話・・・

担当したオンラインプログラムが、余りに巨大なものでした。

(10万行ぐらいあった・・・(^_^;)

ソースコードを出力すると、行番号が桁あふれ(桁オーバー)して出力されず、オマケに、コードが汚くて読めない状態でした。

(コメント(注釈文)が無かったり、ネストがメチャクチャだったり・・・)

なが~いIF文が何重にもネストしてしまっていて、何をしたいのかサッパリだったので、仕方なくソースコードをキレイにするExcelマクロを作って、

実行してみたところ、暫くしてエラー・・・

私「ん?どうした?」

Excel「IFに対するEND IF が見つかりませんでした。」

私「?? まさか・・・マクロミスったかな??」

マクロを調べてみても、別段問題はありませんでした。

まさか・・・? いや、でも何十年も動いている銀行のオンラインシステムだよ、これ。

調べてみると、そのまさかでした・・・(^_^;

本当にIF文に対するEND IFが抜けていました。

調べてみると、他のプログラムでも出るわ出るわ・・・。(苦笑)

怖くなって、開発リーダに報告しました。

私「ど、どうしましょう?」

リーダー「・・・。と、とりあえず動いているから、そっとしておこうか(汗)」

私「は、はいっ!」

■ 愛の交換日記

これは15年位前のお話。

1 2次のページ
寄稿の記事一覧をみる

記者:

ガジェット通信はデジタルガジェット情報・ライフスタイル提案等を提供するウェブ媒体です。シリアスさを排除し、ジョークを交えながら肩の力を抜いて楽しんでいただけるやわらかニュースサイトを目指しています。 こちらのアカウントから記事の寄稿依頼をさせていただいております。

TwitterID: getnews_kiko

  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。