エンジニアの躾
2011年8月2日(火曜日)
エンジニアの躾
公開: 2011年8月7日19時30分頃
Facebookを見ていたら、どうも世間には「エンジニアの
エンジニアの躾
レッドフォックスは他に類を見ない教育体制の下で、世にエンジニアを輩出しています。そのエンジニアの教育の1つに、コーディング規約の遵守というものがあります。コーディングとは、プログラミング言語を使って、ソフトウェアの設計図にあたるソースコードを作成することです。
躾という言葉のインパクトはすごいですが、要はコーディング規約を守るという話ですよね……と、平和な気持ちで読んでいたのですが、下の方で良い例として紹介されている「ソースB」の内容を見て、のけぞってしまいました。あくまでコーディング規約のサンプルなので、プログラムの例が現実的でないとか、アルゴリズムが微妙とかいう点は気にしなくて良いと思います。見るべきは変数の命名やコメントの書き方ですが、その肝心の部分が……。
- classNum には「クラス番号」とコメントがつけられているが、実際に表示されるクラス番号は classNum+1 の値。ループカウンタとして使われているように見える。
- num には「出席番号」とコメントがつけられているが、実際に表示される出席番号は num+1 の値。ループカウンタとして使われているように見える。クラス番号は classNum なのに、こちらは単なる num という命名も不整合。
- average には「平均点」とコメントがつけられているが、実際に格納されるのは平均ではなく合計。
変数の命名を工夫したりコメントをつけたりするのは悪いことではないのですが、実態と異なるものをつけるくらいなら無いほうが良いです。
特に気になるのは、どう見てもループカウンタでしかない変数に、無理に意味のありそうな名前をつけようとしているところ。ソースAのほうでは i, j といういかにもループカウンタらしい名前なのに、ソースBのほうでは、それぞれ classNum, num という名前にされています。そして先に述べた通り、名前やコメントの内容とは食い違ったものになってしまっています。ひょっとして、ループカウンタであろうとも i, j のような一文字変数は許さないという「躾」なのでしょうか?
- 「エンジニアの躾」にコメントを書く
- 前(古い): 10シーベルトと毎時10シーベルトは違うよぜんぜん違うよ
- 次(新しい): ピース