BONO's pageプログラム覚書

プログラミングの注意点・メモ [2004年5月]


- コメントに関して
  • コメントに関して
    • 意味があり,覚えやすい名前をプログラムで使用していれば,コメントを追加する必要はほとんどない.しかし,意味のなる名前が使用されていなければ,どのようなコメントをつけてもわかりやすいコードを作成することは難しい.
  • マジックナンバーは極力避ける.かわりに意味のある名前付の定数を用いる方がいい.
    • 例:
    • double data[10];  ・・とするのではなく,次のようにする.
       enum { maxData = 10 } ;
         double data { maxData } ;

- オブジェクト試行時代のプログラム設計術 より
  • クラスの名前はとっても大事
    • 誰にでもそのクラスの役割がイメージできるような名前にすること
  • クラスの見つけ方
    • 機能や役割を持った「名詞」を探す.
    • 重複している名詞は取り除く
    • 値で表現できるモノは候補からはずす
    • 環境も候補からはずす
  • メソッド分割の考え方
    • 一つの処理の流れを一つのメソッドと定義する.
    • メソッドの大きさが20〜20行を超えるようならば,複数のメソッドに分割する
    • 他のメソッドと重複する処理は,別メソッドとして他のメソッドと共用する.
    • コメントがないと意味がわからない処理の固まりは,その処理名をつけたメソッドにする.
  • 他人の仕事をすることはない!
    • クラスの役割を考える.役割を考えると言うことは,別のクラスの実装を考えないということ.
  • 設計はいつもシンプルに
    • 「後から必要になるかも知れない,でも使われないかも知れない」といった設計を排除し,現時点で必要最小限の設計を行うという姿勢.
  • むやみに継承を使わず,AクラスのインスタンスをBクラス内で保有し,そのインスタンスに処理を委譲する方がよい.
  • パラメータは1箇所にまとまっていた方がよい.
  • 各クラスの初期化はそのインスタンスを使うようにする.
  • Mは,2^n という条件で,0〜M−1 までの整数が周期Mで1回ずつ現れる.

- 前置++と後置++
  • 前置インクリメント
    • xの値は,iがインクリメントされた後の値 ( 10 + 1 ) = 11 となる.
       i = 10 ;
         x = ++i ;
  • 後置インクリメント
    • xの値は,iがインクリメントされる前の値 10 となる.
       i = 10 ;
         x = i++ ;

- いろいろな注意点
  • 整数/整数 の計算結果は,整数値に丸められた値となり,小数点数にはならない.
    • 適切にキャスト変換すること.
        int  sum = 10 ;
         int  count = 5 ;
         double ave = 0 ;

       ave = ( double ) sum / count;
    • x
       i = 10 ;
         x = i++ ;

- 関連情報 & 情報源
  • C/C++ ミスプログラミング ケーススタディ by 杉浦 賢;秀和システム


[前画面に戻る]

Copyright(C)1998 Shinichi Takeshita.All Rights Reserved.