じゃがめブログ

毒にはなるが薬にはならない、じゃがいもの芽のようなことだけを書き綴るブログです。

私が思う『プログラマーに必要な能力』とは何かを語りたい

 先程、私が思う『良いプログラマー』とは何かを語りました。
 今度は、私が思う『プログラマーに必要な2つの能力』について語っておきたいと思います。

 その前に、プログラムとはそもそも何なのか、ということなんですけれども。私は大雑把に、プログラミングとは「名前を付けること」と「構造を作ること」の組み合わせでできていると考えています。漢字で言うと、命名と構成でも言いましょうか。

 単純な話、変数を宣言して『命名』し、『命名』した変数を『構成』して処理を作り、その処理に『命名』してメソッドや関数と呼ばれるものにする。関数・メソッドを『構成』してクラスやモジュールとし、それらに『命名』してひとつのパッケージにしていく。これが、プログラミングの本筋のところ。

 ですから「良い構造を作れること」「的確な名前を付けられること」。これらがプログラマーに必要な2つの能力だと考えています。


 「良い構成」とは何かというと、これは既に偉大な先人たちがデザインパターンのような情報として残してくれています。「的確な名前」とは何かとなると、こちらはあまり共有されていないように思います。最低限のコーディングルールなどはありますから、流石にフラグ名に〜〜flgとか付けてしまう人はもうこの世には存在しないとは思いますけれど。前者は割と勉強している人も多いですし、大事だという認識も高いはず。ですが、後者はあまり意識されていない。でも本当はどちらも大事です。

 命名が大事であることに関して、私は2つの理由を持っています。

  1. 名前が的確でないものは他人に理解されない(バグの温床)
  2. 名前を的確に付けられないものはその存在に誤りがある可能性が高いが、命名が適当な人はそのことに気付きづらい(構成の誤りに気付けない)

 1つ目は先ほどまでのエントリーでも触れました。2つ目は、解りづらいかもしれません。

 具体的に言います。メソッドに名前を付けることになったとき、そのメソッドに的確な名前を付けるには「そのメソッドはどういう役割を担っているか・処理をおこなうか」を把握してなければなりません。そうでなければ正しい名前を付けることは出来ませんからね。ですが、命名が適当な人・やらない人はここがおざなりになります。そうするとどうなるか。例えば、1つのメソッドの中でおこなうべきではない処理までおこなっていることに気付けなくなるのです。しっかりと命名を意識して力を付けている人は、こういうことに気付きやすい。なぜなら、そういう『怪しいコード』には名前を付けることがとても難しいからです。そしてそういう場合、構成に誤りがあると考えて修正することが出来ます。変数名やクラス名、モジュール名、すべてそうです。

 どうでしょう、命名の大事さ、伝わるでしょうか。

 これからプログラマーとしてやっていくという新人の方には、構成だけでなく命名についても意識して学んで欲しいと思います。

プログラミング作法
プログラミング作法
posted with amazlet at 12.01.30
ブライアン カーニハン ロブ パイク
アスキー
売り上げランキング: 14119