e-learning、オラクル研修、LMS(学習管理システム)のiStudy

e-learning、オラクル研修、LMS(学習管理システム)のiStudy

第26回 「【コラム1】プログラマーの心得 ~少しずつ、確認しながら~」

2012.06.25

これまでPL/SQLの文法を中心とした基本的な内容をお届けしてきました。
すなわち、プロシージャとファンクションです。

ここから先はパッケージやトリガーといった上級編になりますが、今回は区切りの回としてコーヒーブレイクを書いてみたいと思います。

内容は、プログラミングする際に必要な心構えについてです。
といっても難しいことではなく、先に結論を述べます。

「少しずつ確認しながらコーディングする」ということです。

プログラミングについては、明らかに得意な人と苦手な人がいます。
しかしその場合の得意とか、苦手だとかは、才能というほどの大げさなものではありません。
これがスポーツや芸術のように誰もができるわけではない分野の場合は、確かに才能が大きな要因ですが、プログラミングはそうではありません。ちょっとした心構えの違いです。

プログラミングというのは、手順を言語で書いただけのものです。
したがって、文章を書ける人なら誰でもできることです。
自分がその手順の当事者になったつもりで、手順を順番どおりに書いていくだけです。

ただ、その文章の読み手が人間ではなく機械(コンパイラ)なので、自分が考えている通りのイメージが相手(コンパイラ)に伝わっているとはかぎりません。
そこで、その文章が相手に伝わり自分の考えている通りに手順を実行してくれることを、“確認しながら”、コーディングしていけばいいのです。
もちろん相手は機械ですから、自分のイメージが正しく実行されない場合は、自分のコーディングに問題があるわけです。

そのためには、いきなり複雑な内容を大量にコーディングしてはいけません。

例えば、注文の受付処理は、
 ・指定された製品の在庫があるかどうかを調べる。
 ・在庫がある場合は、在庫をその分減らす。
 ・注文の登録を行う。
という処理だとします。

その処理をコーディングする時に、いきなりそれらの手順をすべて書くのではなく、順番通りに確実に間違いなく実行できることを確認しながらコーディングします。

そこで、まずパラメータで製品番号や注文数などが正しく受け取れるだけの記述のプロシージャをコンパイルしてキチンと動作することを確認する。
次にその製品番号で、在庫表を問合せて、その製品の在庫数を変数に格納す処理が必要なので、その変数を宣言し、その問い合わせ処理をコーディングする。
そしてコンパイルし、実行し、その変数に在庫数が格納できることをデバッグ的なメッセージ表示で確認する。
といったように、少しずつ確認しながら、コーディングすれば、確実に間違いのないプログラミングができます。

私の経験では、プログラミングが苦手な人は、「ここまでは絶対に大丈夫」という確信がないまま、安易に他のプログラムからコードをコピーしたり、コーディングだけを急いで行い、検証は後でまとめて(他の人が)行うパターンが多いと思うのです。
その結果、やはり検証の段階で間違いが見つかり、その原因を見つけるために多くの時間を費やすものの、全部を把握しきれず、結果、潜在的なバグが残り、後でまた問題が発覚する。
それを修正するため、人もお金も予算オーバーとなり、やがてプログラマーとしての自信をなくし、自分はプログラミングに向いていない、才能がないと思ってしまう。
そんな人が本当に多いと思います。

要は、積み木を確実に積み上げるように、“確認しながら”、“少しずつ”コーディングすれば、誰でも間違いのない処理が書けるものです。
そのように積み上げたプログラムはプログラマー自身が十分に自信を持っているものであり、自分自身の分身と言えます。
そして、安心して検証者に委ねることができます。
検証者もそのようなプログラムからはバグをなかなか見つけられないでしょう。
(それでも検証者としては、絶対にバグを見つけてやる!というくらいの気持ちは必要です)

プログラミングのように、確認が可能な分野では不確実性を事前に確実に排除できます。
一つ一つ確認しながら前に進むこと。遅いようでいて、結局はそれが一番の近道と言えます。

それでは、今回はここまでです。
また次回、ご期待ください。

先頭へ戻る