インデントは1段階
ThoughtWorksアンソロジーに載っているエッセイに、「オブジェクト指向エクササイズ」があります。
これに書かれている「9つのルール」がとても興味深いものです。
これを実践するだけで、コード領域についてはかなりよくなるのではないか?という予感があります。
まず「9つのルール」を以下にあげてみましょう。
- 1つのメソッドにつきインデントは1段階までにすること
- else句を使用しないこと
- すべてのプリミティブ型と文字列型をラップすること
- 1行につきドットは1つまでにすること
- 名前を省略しないこと
- すべてのエンティティを小さくすること
- 1つのクラスにつきインスタンス変数は2つまでにすること
- ファーストクラスコレクションを使用すること
- Getter、Setter、プロパティを使用しないこと
ざっと見てみると、センセーショナルに思う内容もあるのではないでしょうか?
では、まず1の「1つのメソッドにつきインデントは1段階までにすること」について書いてみましょう。
このルールの目的は、メソッドの仕事をシンプルにして、コード簡潔にすることです。
「インデントが一段階」ということは、制御構造(ループや分岐)が一つということです。
例えば、メソッドの中にforループがネストしているようなコードはNGです。
#ThoughtWorksアンソロジーに載っているサンプルもそうですね。
そのようなコードをリファクタリング手法のメソッドの抽出等を使い、インデントが1段階になるまで抜き出します。
今時はEclipseなどのIDEが進歩しているので、このような作業もかなり簡単になりました。
リファクタリングの第一歩には、このルールの適用が最適な気がしますね。
このルールでまずはメソッドを抽出し、新たなクラスを発見し、メソッドを移動する。
これを繰り返していくだけで、クラスもメソッドも小さくなりコードの保守性があがりそうです。
コメントはまだありません。