2012年4月27日金曜日

CentOS入れたので、Keyboard配列をWindows系にしてみるの巻

MacにCentOS6入れました。
今のFusionは素晴らしく、あっというまにInstallしてくれます。
簡易インストールすると、適当にやってくれるけど、対応言語が英語に設定されてしまう。
日本語にするのもちょっとめんどいので、最初から手動?インストールで日本語設定する方がよい。

で、本題のKeyboard配列ですが、以下のページに答えがあったので、メモメモ。
http://satospo.sakura.ne.jp/blog_archives/blog/mac/20110106_keybord.html

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"は、もはやレガシーコード。