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"は、もはやレガシーコード。
ラベル
RoR
WSUS
MECM
SCCM
環境構築
WindowsServer2016
更新プログラム
Python
Eclipse
GAE
Macports
AWS
Django
GoCilpse
Hibernate
PeerCache
SQL
SSL
SchUseStrongCrypto
TLS
VPN
WindowsServer2019
bootstrap
emacs
gcc
git
go
haml
react
AmazonSES
Apache Derby
BranchCache
CB2207
CleanCode
Database
Defender
DeltaDownload
Edge
EffectiveJava
GPO
MAILER-DAMON
MCM
RC4
RDS
Report
ReportingServices
Route53
SQLServer2017
Spring
StreamCipher
SupportBlog
Vagrant
Wireshark
WorkMail
Xcode
amazon
android
ccmcache
certificate
gdb
golang
oauth
pg
registry
sup
w3wp
webapp
イネーブルメントパッケージ
インプレースアップグレード
バージョン管理
帯域外リリース
有効化パッケージ
東プレ
配布ポイント
0 件のコメント:
コメントを投稿