プログラムTIPS

DEMO PROGRAM ヘキサドライブでは様々な研究開発をしています。その一部を紹介。

C++コーディングルール:コメント文の重要性(2009年2月17日)

今回もプログラマ初心者の方に向けての話です。
今回はコメント文について。
コメント文が無くてもプログラムは動きますが、大変重要なものです。
コメント文のメリットとして、以下のようなものが挙げられます。


1.
処理の流れなどを簡単に知ることができる
2.制作者の意図を知ることができる
3.今後のためのメモを残せる
当たり前なことばかりですが…改めて説明していきたいと思います。


1:

処理の流れや概要を簡単に知ることができる。ごく普通の理由です。
ソースコードを見れば全ての処理を知ることはできます。
しかし処理を理解するのに必要なのは、まずはおおまかな処理の流れだったり、アルゴリズムだったりします。
そんなときはコンピュータに実行させる単位で見るより、
人間に分かる単位で書かれたものを見る方が圧倒的に効率がいいわけです。
自分が作ったものでも、昔のソースだと内容を忘れたりしますが、そんなときも役に立ちます。


2:

制作者の意図を残せるというのも、また大切な要素です。
例えば次のような処理があったとしましょう。

 

 

switch( mode ) {
    case MODE_INITIALIZE:
        initialize();

    case MODE_UPDATE:
        update();
        break;
    }

最初のケースの中、initialize(); の後にbreakが入っていないのはバグじゃないか?と思いますよね。
でも以下のように一文入っているだけで、

 

 

switch( mode ) {
    case MODE_INITIALIZE:
        initialize();
        // breakせずに引き続き更新処理を行います

    case MODE_UPDATE:
        update();
        break;
    }

 

ああ、これは意図された処理なんだ、と理解できます。
ソースコードだけではよく分からない微妙なニュアンスも残せるわけです。


3:

今後のためにメモを残せるという項目についてです。
自分でルール付けをして書いておけば、後から行う最適化やリファクタリングのときに便利です。
例えば、今後するべきことを書いておく場合。

// TODO:とりあえずバブルソートで実装。今は問題無いが、
// 処理が重くなってきたときに別のソートに置き換える必要あり。

 

といった風に書いておけば、TODO:でgrepして見つけることが出来ます。
こうやって書いておく癖をつけておけば、後でやることを忘れていた、なんてことが減ると思います。


!?:

ただ、何でもかんでもコメントさえ書けばいいというわけではありません。
例えば次のようなものはNGです。

 // 登録個数ループ。
    for( int i=0; i<count; ++i ) {
        :
        :
    }

コードを見たまま書いているようなコメントではあまり意味がありません。
今まで説明してきたように、処理の流れや意図が分かるように書く必要があります。
次のような感じです。

/ 登録されているものから検索。一番始めに見つけたデータを使用する。
    for( int i=0; i<count; ++i ) {
        :
        :
    }

これならば中で何をしたいのかがよく分かると思います。

 

処理には一切影響しないコメント文も、使い方によっては大変な威力を発揮します!
コメント文をうまく乗りこなせる知的なプログラマーを目指してがんばっていきましょう!
 

【免責事項】

本サイトが提供している情報に関しては、安全性等、いかなる保証もされません。 株式会社ヘキサドライブは、これらの情報をあなたが利用することによって生ずるいかなる損害に対しても一切責任を負いません。

【著作権】

本サイトが提供しているコンテンツについては、特に断りのある場合を除き、株式会社ヘキサドライブが著作権を有します。