2012年4月3日火曜日

CleanCode1

CleanCode読んでます。
印象に残った事をタイトルにインデックス付けながら書こうとかと思います。

まだ100ページほどしか読んでいませんが。。。

今日読んで、印象に残ったもの。

其の1
エラー処理に、エラーコードを使うな!

エラーコードを使うと、呼び出し元ですぐにエラーコードを判断する必要が出て来てしまう。
これを例外に変えてあげるだけで、Exceptionだけで事足りてしまう。

Syori syori = new Syori();
ErrorCode test1Code = syori.test1();
if(test1Code == OK){
 ErrorCode test2Code = syori.test2();
 if(test2Code==OK){
 }
...
} else if (errorCode == NG){
...
} else if ...

てな感じ。でも、これを例外にしてあげるだけで、

Syori syori = new Syori();
try{
 syori.test1();
 syori.test2();
} catch (Exception e){
}

みたいな感じに書ける。


其の2
1つのメソッドで1つの事をする。

というのは当たり前なんだけど、ここでは特に例外処理について。
例外処理を行っているメソッドは、既に例外処理という1つの事をしている。
つまり、それ以外のことをしてはいけない。つまり、try節の中にロジックを入れてはいけない。
ロジックはprivateメソッド等、外に切り出す。
なので、以下のようなコードを書くようにする。

try{
 syori();
} catch (Exception e) {
}

其の3
Interfaceを利用者に意識させるな。

つまり、IBookSearcherでは無く、BookSearcherで。
実装側の名前は、つけるとしたら、BookSearcherImplみたいな感じ。
IBookSearcherの"I"は、もはやレガシーコード。

0 件のコメント:

コメントを投稿