コーディングTips

東大の五十嵐健夫先生の日記より引用。ラボ生の講義らしい。(Java)

  • インスタンス変数はpublic とせず、すべてsetter とgetterを介してアクセスするようにする。またsetterでは assert文を入れて変な値が書き込まれることを未然に防ぐ。
  • list をサブルーチンに渡す時に、中で書き換える必要がなければ、Collections.unmodifiableList(list)として渡すと勝手に書き換えられなくなる。
  • コードの保守性を高めるには継承よりも委譲をつかうべき(extends するのでなく、中でインスタンス変数として持つ)。
  • インスタンス変数を変更するようなコードを書くときには、結果がでるまではローカル変数として計算し、最後にインスタンス変数に代入する。こうすれば途中で中断された場合でもおかしなことにならない。
  • 複数の状態を区別する変数(列挙)には、int を使うのでなく enum を使う。
  • コンストラクタの中はインスタンス変数の初期化のみにして、計算処理はしない。処理する場合には static factory を使う。