インデントは1段階

ThoughtWorksアンソロジーに載っているエッセイに、「オブジェクト指向エクササイズ」があります。
これに書かれている「9つのルール」がとても興味深いものです。
これを実践するだけで、コード領域についてはかなりよくなるのではないか?という予感があります。
まず「9つのルール」を以下にあげてみましょう。

  1. 1つのメソッドにつきインデントは1段階までにすること
  2. else句を使用しないこと
  3. すべてのプリミティブ型と文字列型をラップすること
  4. 1行につきドットは1つまでにすること
  5. 名前を省略しないこと
  6. すべてのエンティティを小さくすること
  7. 1つのクラスにつきインスタンス変数は2つまでにすること
  8. ファーストクラスコレクションを使用すること
  9. Getter、Setter、プロパティを使用しないこと

ざっと見てみると、センセーショナルに思う内容もあるのではないでしょうか?
では、まず1の「1つのメソッドにつきインデントは1段階までにすること」について書いてみましょう。

このルールの目的は、メソッドの仕事をシンプルにして、コード簡潔にすることです。

「インデントが一段階」ということは、制御構造(ループや分岐)が一つということです。
例えば、メソッドの中にforループがネストしているようなコードはNGです。
ThoughtWorksアンソロジーに載っているサンプルもそうですね。

そのようなコードをリファクタリング手法のメソッドの抽出等を使い、インデントが1段階になるまで抜き出します。
今時はEclipseなどのIDEが進歩しているので、このような作業もかなり簡単になりました。

リファクタリングの第一歩には、このルールの適用が最適な気がしますね。
このルールでまずはメソッドを抽出し、新たなクラスを発見し、メソッドを移動する。
これを繰り返していくだけで、クラスもメソッドも小さくなりコードの保守性があがりそうです。

  1. コメントはまだありません。

  1. トラックバックはまだありません。

コメントするには、 [ ログイン ] する必要があります。