判りやすいプログラムを心がけましょう

先日VB.netで見かけたプログラムを見た際に思ったことを書きます。実在する人物でしたが、誰とは言いません。ある程度権限を持っているCOBOL経験20数年程度の人です。

そのVB.net画面は、印刷指示画面でした。印刷ボタン、プレビューボタン、閉じるボタン、それに印刷条件を設定するコンボボックスやらテキストボックスが数個あるような画面です。
帳票はExcelで作ってある帳票で印刷ボタンの場合は、プリンターに出力、プレビューボタンの場合は画面にエクセルが表示されるといった感じの画面です。

このプログラムソースをみるとメソッドは4つでした。それぞれの機能は、

  • 印刷ボタンクリックイベント(エクセルを作成機能を呼ぶ、作成したエクセルを印刷する。)
  • 印刷ボタンクリックイベント(エクセルを作成機能を呼ぶ、作成したエクセルを表示する。)
  • 閉じるボタンクリックイベント(フォームを非表示にする)
  • エクセル作成機能(エクセルを内部的に立ち上げ、印刷フォーマット4種類とその改ページ、小計、ページ計、合計を制御する)

のような機能でした。

エクセルの作成機能は、およそ3000行ほどあり、わかりにくい物でした。彼の後輩に聞いたところ、当然作成者から教育を受けているので非常にわかりやすいといっています。また、判らない物は技術不足といっております。判らないといったら、彼の後輩は目を白黒させていて、その日から僕のことを「あほ」でも見るような目に変わりました。で、彼の後輩にそのプログラムを説明してもらうことになりました。彼の後輩は、一行一行プログラムを上から読んでくれました。ここで、「iに1づつ加えています。」とかって、私の聞きたかったのは、このプログラムが何をしているかを聞きたかったのですが、彼の後輩はプログラムがどう実現されているかを、こと細かに説明されてしまいました。
結局自分で、ソースをコピーしリファクタリングしてプログラムを把握しました。
それから、1週間ったったころです、プラグラムを作成した彼の上司から連絡を受け、私の作ったプログラムがわかりにくいとの意見を彼の後輩からされたそうです。新人にわかるプログラムを書いてください。いい年なんですから、そんなトリッキーなことはせずに、彼の後輩も君のプログラムはわからないと言っているぞ、いろいろなところに飛んでプログラムが追えならしい」と、お酒の席で説教される始末です。かなり、凹みました。
僕ってできない人だったんです。この商売をやめようと思いました。