2009年12月23日水曜日

プログラミングの心得


 プログラムコーディングを行う上で、最も重要なポイントを以下の3点に絞られる。
  1. 正確であること
  2. 保守性が高いこと
  3. 性能が高いこと
 他にも必要なポイントがあるのでは?という意見もあるかもしれないが、上記3点が揃った時点で、プログラムは非常に高い品質を維持し、非常に美しく仕上がる。
 さて、この3つポイントを議論するうえで最も重要なことは、それらの優先順位にある。

 まず、要求仕様に対して「1.正確であること」がプログラムとして必要最低限の要素であることは、議論の余地はないものであると考えられる。
 ここで、問題となるのは「2.保守性が高いこと」「3.性能が高いこと」の優先順位である。この優先順位が逆転しており、プログラムソースが分かりにくいことを指摘すると、「このループ処理で複数の処理を行うことで性能が良くなるのです」と、当たり前のように答える開発者に度々出会ってきた。

 そんな開発者に対して、「プログラムソースはお手紙だ」という例えを聞かせることがある。

 プログラムを初めに開発するのはあなたかもしれないが、保守をするのは大抵その後輩、又は全くの他人になることは間違いない。そのため、他人が保守できないプログラムを作成した場合、例え性能が高くても、それはマスタベーションにしか過ぎないことになる。性能は常に改善できる状態にあるべきであり、その機会を決して途絶えさせてはいけない。

 保守をする人に分かりやすいメッセージ(プログラムソース)を伝える力こそが、プログラム開発者にとって必要な要素であると、私は考える。