年明けなのでリファクタリング:Rubyエディションを読んでみた

あけましておめでとうございます。


Amazon.co.jp: リファクタリング:Rubyエディション: Jay Fields, Shane Harvie, Martin Fowler, Kent Beck, 長尾 高弘: 本

感想

年始にふさわしい一冊という感じで身が引き締まる思いです。
(日本酒飲みながらですが)
第1章の導入のところをやりながら進めると盛り上がってしまって
第6章なんかは面白くて手を動かしながら
一気に読んでしまいました。
case文をなくすところなんかはなるほどなぁと思いました。


最後のまとめにもありますが「大規模なリファクタリングは破滅のためのレシピだ」
というのを噛み締めながら今年一年より一層きれいなソースを書ければと思います。


目次

第1章 リファクタリング――最初のサンプル
1.1 最初の状態
1.2 リファクタリングの第1歩
1.3 statementメソッドの分解、再配置
1.4 金額計算ルーチンの移動
1.5 レンタルポイント計算メソッドの抽出
1.6 一時変数の削除
1.7 料金コードによる条件分岐からポリモーフィズムへ
1.8 ついに継承の導入か
1.9 まとめ

第2章 リファクタリングの原則
2.1 リファクタリングの歴史
2.2 リファクタリングの定義
2.3 リファクタリングする理由
2.4 リファクタリングはいつすべきか
2.5 リファクタリングが有効なわけ
2.6 管理者とはどう交渉すればよいか
2.7 間接化とリファクタリング
2.8 リファクタリングの問題点
2.9 リファクタリングと設計
2.10 何も作らなくなるまでには時間がかかる
2.11 リファクタリングとパフォーマンス
2.12 給与管理システムの最適化

第3章 コードの臭い
3.1 コードの重複
3.2 長いメソッド
3.3 大きなクラス
3.4 長い引数リスト
3.5 変更系統の分岐
3.6 ショットガン創の手術
3.7 メソッドの浮気
3.8 群れたがるデータ
3.9 プリミティブ強迫症
3.10 case文
3.11 パラレルな継承階層
3.12 仕事をしないクラス
3.13 空論的一般化
3.14 一時フィールド
3.15 メッセージの連鎖
3.16 横流しブローカー
3.17 親密すぎるクラス
3.18 インターフェイスの異なるクラス群
3.19 不完全なライブラリクラス
3.20 データクラス
3.21 継承した遺産の拒絶
3.22 コメント
3.23 メタプログラミング狂
3.24 柔軟過ぎるAPI
3.25 紋切り型コードの繰り返し

第4章 テストの構築
4.1 自己検証コードの価値
4.2 Test::Unitテストフレームワーク
4.3 開発者テストとQAテスト
4.4 テストの追加
ほか

第5章 リファクタリングのカタログに先立って
第6章 メソッドの構成方法
第7章 オブジェクト間でのメンバの移動
第8章 データの構成
第9章 条件式の単純化
第10章 メソッド呼び出しの単純化
第11章 一般化の処理
第12章 大規模なリファクタリング
第13章 まとめ