コードコンプリート上(進捗47.3%)

 

わかったこと

 人間が一度に認識出来るものは7±2である為、引数なども7以下にする。

 

 継承

 ・継承ではスーパークラスのメンバデータはprivateにする。

  ・継承ツリーはなるべく浅くする。

 

 メンバルーチンの呼び出しは出来るだけ少なくする。

 

 コンストラクタでは可能であれば、全てのメンバデータを初期化する。

 

 クラスを作成する理由

  ・複雑さを緩和する。

  ・コードの再利用を促進する。

 

 クラスインターフェースは一貫性のある抽象化を実現する。

 

 基本的は継承よりも包含の方が望ましい。

 

 高品質のルーチンはプログラムの修正・再利用などが簡単になる

  ・ルーチンは機能的凝集度を意識して作成する。

   ・機能的凝集度はルーチンが1つの機能だけを実行する。

 

 ルーチン名はルーチンが行う処理を明確に表さすこと。

 

 一つのルーチンは100~200行(処理部のみで)が望ましい。

  ・ルーチンの引数は作業用変数として使用しない。

 

 ルーチンとして独立させることが最も効果的なのは、単純な処理である。

 

 関数は戻り値を返すルーチン。

 プロシージャは戻り値を返さないルーチン。

 

 「ゴミ入れ、ゴミ出し」なコードはやめる。

 

 防御的プログラミングには、アサーションとエラー処理がある。

  ・バリケードを使用すると、アサーションとエラー処理を分けるのが簡単になる。

   ・アサーションはコードで絶対に発生すべきではないエラーを処理する。(入力値が想定のものより大きい等)

   ・エラー処理は発生することが予想されるエラーを処理する。(入力値がそもそも来ない等)

  ・例外処理は通常の処理とは別の次元でエラーを処理できる。