よいプログラムってなんだろう?

 私は以前、IT企業に務めておりプログラミングをやっていました。配属された部署のプログラミング能力はお世辞にも褒められてものではなく、売り出している製品の品質もかなり酷いものでした。わたしも新人で入ったので、人のことを馬鹿にできないのですが、新人でも危機感を感じてしまうぐらいの現場だったので、本などを買って必死に勉強したことを覚えています。

 

 そのとき意識したのが「よいプログラムとは?」でした。「よいプログラム」にするために以下のような、わりと有名なテクニックが多数存在します。

  • ファイル名、関数名、変数名など名前付けを適切に行う。
  • 数百行にわたる処理をひとまとめにしない。
  • 同じ処理を何度も書かない。
  • etc...

これら別々のテクニックを使う最大の理由、共通の目的というのは

他人が予測できるプログラムにするため

すこし曖昧ですが、これに尽きると思います。

 

 例えば、すごろくでサイコロの出目だけ先に進むプログラムがあったとします。サイコロで3が出たた場合は、「現在いるマス+3」というような処理をするのが普通だと思いますが、なぜか「現在居るマス+1+1+1」という処理をしてしまう人がいます。

 どちらも結果は同じですが、後者は予想の範疇から外れてしまいます。そして「なんでこんな書き方したの?」という疑問で頭がいっぱいになります。また、なにか重大な理由があって、そのような書き方をしている場合もあるので、これを作った人に聞き込みいく必要性もでてきます。

 これは極端な例ですが、似たようなケースに出くわすことがたくさんあります。他人が予測できないプログラムは、他の人が関われば関わるほど、どんどんバグが増えていきます。

 企業に務めてプログラムする場合は必ずと言っていいほどチームを組みます。チームで仕事をする以上は他人に優しいプログラムを心がけるのが一番だと思います。