納涼!ほんとにあった怖いコードの話
ガジェット通信 / 2013年8月25日 14時0分
今回は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年位前のお話。
あるWebシステムを作っていた時、別システムのソースコードを見る機会がありました。
で、見たのですが・・・。 (^_^;
(コメント)◯◯さん、来週ヒマ?
(コメント)ええ、18時からなら空いています。
(コメント)じゃ、◇◇レストランで食事でもしない?
し、神聖なコードでナンパ(交換日記?)するなっ!(怒)
(ところで、返事は? (^_^;)
●■ 開かずのプログラム
これも大手銀行のシステムでのお話・・・
先程書いた様に、私はCOBOLでプログラムを書いていたのですが、ある日、リーダーに呼ばれて、直々の命令を頂きました。
リーダー「あのさ、このコードなんだけど、銀行の利息計算をする超重要なプログラムなんだけど、誰も触れないんだよね。」
私「えっ?!」
リーダー「COBOLじゃなくて、FORTRAN(科学演算が得意なプログラム言語)なんだよね。」
私「そ、そうなんですか。」
リーダー「これ、COBOLに直してくれないかな?」
私「分かりました。挑戦してみます。」
リーダー「あ、そう? 出来たらで良いから。無理しなくてもいいからね。」
貰ったプログラムをプリントアウトしてみて、ビックリ・・・
たったの15行でした。
こんなの楽勝じゃん♪
しかし・・・内容の解析に、丸々3日間かかりました。
このプログラム、要するに積分計算のプログラムで、
この記事に関連するニュース
-
Sparticle社と日本TmaxSoft、Cobolコード解析AI仕様書自動生成ツールの共同開発で業務提携
PR TIMES / 2024年3月25日 14時15分
-
日本ティーマックスソフト、生成AI技術の専門企業Sparticle社と、AI自動ドキュメント生成ツールの共同開発において業務提携開始
PR TIMES / 2024年3月22日 16時40分
-
【10万人突破企画】大人の自由研究 第9回 プログラミング未経験の編集者がPythonを勉強したら(前編) - Progate
マイナビニュース / 2024年3月14日 11時0分
-
窓辺の小石 第156回 第3ファウンデーション
マイナビニュース / 2024年3月8日 14時48分
-
えっ、手書きで!? ダンプカーに文字を書く職人技が「凄すぎる」と話題に!!「超絶技巧」「尊敬と感動」の声
マイナビニュース / 2024年2月29日 18時11分
ランキング
-
1「こういうのはとても残念だな」 「RIZE」ベーシスト、格付けチェック一部内容に疑問 小学生バンド“不正解”に言及
ねとらぼ / 2024年3月28日 15時4分
-
2足が細すぎる…!『学園アイマス』登場アイドルの“細すぎる体付き”に心配の声―思わず「飯を食え!」と促すユーザー続出
インサイド / 2024年3月28日 12時40分
-
3『プロセカ』運営が参加クリエイターへの誹謗中傷をやめるよう注意呼びかけ…物議を醸すバランス調整については、方針を赤裸々に説明
インサイド / 2024年3月28日 16時15分
-
4元野良猫に「ヒーターに近づくと危ないよ」と教え続けて1年後 “何という事でしょう”なビフォアフに「天才ですね」「なごみます」
ねとらぼ / 2024年3月21日 6時30分
-
5えっ、実は18禁だった? 残酷描写も衝撃の「Z指定」ゲーム・3選
マグミクス / 2024年3月27日 21時10分
記事ミッション中・・・
記事にリアクションする
記事ミッション中・・・
記事にリアクションする
エラーが発生しました
ページを再読み込みして
ください