可読性をあげる

なるだけelse節をつかわない

if文は真のものが通過して何らかの処理.それ以外は即returnできるように.

もし あれで
{
  もし これで
  {
    ああやって
    もし それで
    {
      もし こっちだったら { }
      もし そっちだったら { }
    }
  }
}

もし あれで の反転
  return
もし これで の反転
  return
ああやって
もし それで
{
  もし こっちだったら { }
  もし そっちだったら { }
}

密結合を避ける

if文自体もなるだけつかわない

微妙に違うが本質的には同じような処理はインタフェース等でメソッド名をしばって処理.処理そのものは実装したクラス側が判断する.

メソッド ファイルをダウンロードして保存(URL)
{
    URLのMIMETYPEを保持
    バッファにURLのデータを保存
    もしMIMETYPEがテキストだったら圧縮して保存
    もしMIMETYPEが画像だったら縮小して保存
    もしMIMETYPEが...
}

こうするとコードが密結合してしまい,機能が増えるにつれメンテナンス性が著しく下がる.また機能の削除をするのもリスクが高くなってくる.

クラス ダウンロード処理クラス
{
    メソッド ファイルをダウンロードして保存(URL)
    {
      URLのMIMETYPEを保持
      バッファにURLのデータを保存
      リフレクションを使いMIME名からクラスを引いてくる
      上のクラスの"バッファを処理"というメソッドを呼ぶ
    }
}

インタフェース バッファが処理できる
{
    メソッド バッファを処理(バッファ)
}

クラス テキスト処理クラス(バッファが処理できる)
{
    メソッド バッファを処理(バッファ)
    {
        圧縮して保存
    }
}
クラス 画像処理クラス(バッファが処理できる)
{
    メソッド バッファを処理(バッファ)
    {
        縮小して保存
    }
}

しかしこういった処理はJavaやC#ではけっこう大変.Pythonはかなりアバウトに作れるのでオススメ.

Programing/CodingStyle (last edited 2007-03-07 14:20:56 by KeisukeUrago)