設計のまずいコードの特徴
世の中には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()メソッドに切り出しました。将来、
このように、
書籍
ちょっとした変更のはずが大ごとになったり、