新刊ピックアップ
コードの変更作業が楽で安全なものにならないのはきっと設計のせい
設計のまずいコードの特徴
世の中には2種類のコードがあります。設計のまずいコードとうまいコードです。では,
- メソッドが長い
- クラスが大きい
- 引数が多い
- 記述の重複が多い
- 関心事を詰め込みすぎている
最初はだれもがうまく設計しようとします。しかし,
うまい設計は変更に強い
以下に,
int price = quantity * unitPrice;
if( price < 3000 )
price += 500; //送料
price = price * taxRate();
このコードには,
int basePrice = quantity * unitPrice;
int shippingCost = 0;
if( basePrice < 3000 ) // 3000円未満なら
shippingCost = 500; // 送料500円
int itemPrice = (basePrice + shippingCost) * taxRate();
これでだいぶわかりやすくなりましたが,
int basePrice = quantity * unitPrice;
int shippingCost = shippingCost(basePrice);
//送料計算メソッド
int itemPrice = (basePrice + shippingCost) * taxRate();
...
//メソッドに独立させた送料計算のロジック
int shippingCost(int basePrice) {
if( basePrice < 3000 ) return 500;
return 0 ;
}
送料計算に関するコードをshippingCost()メソッドに切り出しました。将来,
このように,
書籍
ちょっとした変更のはずが大ごとになったり,
記事中で紹介した書籍
-
現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法
「ソースがごちゃごちゃしていて,どこに何が書いてあるのか理解するまでがたいへん」「1つの修正のために,あっちもこっちも書きなおす必要がある」「ちょっとした変更...