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