[本] 『リファクタリング

近所の本屋に再入荷!!おおお、ありがとうありがとう。給料入ったので買ってやりますた。なので、これから淡々とまとめていくよ。

〜1章

例をまじえながらリファクタリングとは?を説明していく。

Movie <--- Rental <--- Customer
  • 1,2,3,4章と15章を読むとよい(途中はカタログだからリファレンスにすればよい)。
  • C3(Chrysler Comprehensive Compensation system)……クライスラー総合給与管理システム(翻訳用)
  • 美的な判断(翻訳用)
  • コードを簡単にしてから機能追加
  • 小さなステップで追加していく
  • 使用するデータを持つオブジェクトにメソッドは定義される
  • 一時変数の削除
  • サンプルソースの太文字部分がテキトーで読みにくい!
  • switch文は自分(自オブジェクト)について行うこと。他のオブジェクトを参照していたら、そっち側で行うこと。
  • コンストラクタからもsetter経由で変数設置
  • stateパターンの適応

2章

リファクタリング(名詞)
外部から見たときの振る舞いを保ちつつ、理解や修正が簡単になるように、ソフトウェアの内部構造を変更させること。
リファクタリング(動詞)
一連のリファクタリングを行って、外部から見た振る舞いの変更なしに、ソフトウェアを再構築すること。
  • 効率よく統制されたやり方(翻訳用)
  • 2つ帽子(add, refactoring)
  • プログラムの設計の劣化(翻訳用)
  • Peculier……ビールの一種って書いてある。http://www.beerhunter.com/
  • 僕は、偉大なプログラマなんかじゃない。偉大な習慣を身につけたプログラマなんだ。(Kent Beck)……あれ?これって、横着プログラミング: 小粒なツールたちに載ってたやつだ。
  • リファクタリングは時間をとって行うもんじゃない
    • 3度目になったらリファクタリング
    • 機能追加前にリファクタリング
    • バグフィクスのときにリファクタリング
  • コードレビューを究極に推し進めたものがXPのペアプロ
  • 管理者を説得……ダメなら黙ってやっちまえ!
  • ハードコードの条件分岐(なにそれ?)
  • プログラムというのは、同じ品質を得るのにより少ない間接層(indirection)ですんでいるかで価値が測られるべき
  • published interface……公布済みインターフェイス(翻訳用)
    • 例外について
  • リファクタリングをやっちゃだめ
    • スクラッチから作った方が速い
    • 締め切り間近
  • debt:借入金。ああ、技術的「負債」って訳しちゃった。
  • 推測せずに計測すべし(Ron Jeffries)