Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

リファクタリング

書籍 リファクタリング−プログラマーの体質改善 | 大きなリファクタリング | 継承の分割

パンくず リファクタリング-プログラマーの体質改善テクニック 大きなリファクタリング 継承の分割 内容 リファクタリング名 継承の分割 適用ケース要約 同時に2つの仕事をしている継承階層がある 適用内容要約 2つの階層を作り、片方からもう片方を実行す…

書籍 リファクタリング−プログラマーの体質改善 | 大きなリファクタリング

パンくず リファクタリング-プログラマーの体質改善テクニック 大きなリファクタリング 内容 継承の取り扱い リファクタリング名 対象 対応 継承の分割 同時に2つの仕事をしている継承階層がある 2つの階層を作り、片方からもう片方を実行するには委譲を使…

書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | 継承による委譲の置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い 継承による委譲の置き換え 内容 リファクタリング名 継承による委譲の置き換え 適用ケース要約 委譲を使っているが、インターフェイス全体のために多数の委譲メソッドを書いてい…

書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | 委譲による継承の置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い 委譲による継承の置き換え 内容 リファクタリング名 委譲による継承の置き換え 適用ケース要約 サブクラスがスーパークラスの一部のインターフェースだけを使っている。あるいは…

書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | Template Methodの形成

パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い Template Methodの形成 内容 リファクタリング名 Template Methodの形成 適用ケース要約 異なる2つのサブクラスのメソッドが類似の処理を同じ順序で実行しているが、各処理は異…

書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | Template Methodの形成

パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い Template Methodの形成 内容 リファクタリング名 Template Methodの形成 適用ケース要約 異なる2つのサブクラスのメソッドが類似の処理を同じ順序で実行しているが、各処理は異…

書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | 階層の平坦化

パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い 階層の平坦化 内容 リファクタリング名 階層の平坦化 適用ケース要約 スーパークラスとサブクラス(またはモジュールとそのモジュールをインクルードするクラス)に大差がない …

書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | インターフェースの抽象

パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い インターフェースの抽象 内容 リファクタリング名 インターフェースの抽象 適用ケース要約 複数のクライアントが、あるクラスのひとまとまりのインタフェースを使っている。また…

書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | スーパークラスの抽出

パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い スーパークラスの抽出 内容 リファクタリング名 スーパークラスの抽出 適用ケース要約 同じような機能を持つ2つのクラスがある。 適用内容要約 片方のクラスをスーパークラスに…

書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | サブクラスの抽出:Extract Subclass

パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い サブクラスの抽出:Extract Subclass 内容 リファクタリング名 サブクラスの抽出:Extract Subclass 適用ケース要約 クラスが一部のインスタンスだけしか使わないメンバを持ってい…

書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | フィールドの引き下げ

パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い フィールドの引き下げ 内容 リファクタリング名 フィールドの引き下げ 適用ケース要約 スーパークラスのふるまいが、一部のサブクラスでしか使われない。 適用内容要約 フィール…

書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | メソッドの引き下げ

パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い メソッドの引き下げ 内容 リファクタリング名 メソッドの引き下げ 適用ケース要約 スーパークラスのふるまいが、一部のサブクラスでしか使われない。 適用内容要約 フィールドを…

書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | コンストラクタ本体の引き上げ

パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い コンストラクタ本体の引き上げ 内容 リファクタリング名 コンストラクタ本体の引き上げ 適用ケース要約 複数のサブクラスに内容がほとんど同一のコンストラクタがある。 適用内…

書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | メソッドの引き上げ

パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い メソッドの引き上げ 内容 リファクタリング名 メソッドの引き上げ 適用ケース要約 2つのサブクラスが同じメソッドを持っている。 適用内容要約 そのメソッドをスーパークラスに…

書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | フィールドの引き上げ

パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い フィールドの引き上げ 内容 リファクタリング名 フィールドの引き上げ 適用ケース要約 2つのサブクラスが同じフィールドを持っている。 適用内容要約 そのフィールドをスーパー…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | 継承の取り扱い

パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い 内容 継承の取り扱い リファクタリング名 対象 対応 フィールドの引き上げ 2つのサブクラスが同じフィールドを持っている。 そのフィールドをスーパークラスに移動する。 メソッ…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | 条件判定による例外の置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 条件判定による例外の置き換え 内容 リファクタリング名 条件判定による例外の置き換え 適用ケース要約 例外を発生させているが、本来は呼び出し側が先にチェックすべ…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | 例外によるエラーコードの置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 例外によるエラーコードの置き換え 内容 リファクタリング名 例外によるエラーコードの置き換え 適用ケース要約 メソッドがエラーを示す特別なコードをリターンしてい…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | ダウンキャストのカプセル化

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 ダウンキャストのカプセル化 内容 リファクタリング名 ダウンキャストのカプセル化 適用ケース要約 メソッドが返すオブジェクトが、呼び出し側によってダウンキャスト…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | Factory Methodによるコンストラクタの置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 Factory Methodによるコンストラクタの置き換え 内容 リファクタリング名 Factory Methodによるコンストラクタの置き換え 適用ケース要約 オブジェクトを生成する際に…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | メソッドによる引数の置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 メソッドによる引数の置き換え 内容 リファクタリング名 メソッドによる引数の置き換え 適用ケース要約 あるオブジェクトがメソッドを呼び出し、その戻り値を別のメソ…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | オブジェクトそのものの受け渡し

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 オブジェクトそのものの受け渡し 内容 リファクタリング名 オブジェクトそのものの受け渡し 適用ケース要約 あるオブジェクトから複数の値を取得し、それらの値をメソ…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | 明示的なメソッド群による引数の置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 明示的なメソッド群による引数の置き換え 内容 リファクタリング名 明示的なメソッド群による引数の置き換え 適用ケース要約 引数の特定の値によって異なるコードが実…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | メソッドのパラメーター化

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 メソッドのパラメーター化 内容 リファクタリング名 メソッドのパラメーター化 適用ケース要約 複数のメソッドが、異なる値に対してよく似た振る舞いをしている 適用…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | 問い合わせと更新の分離

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 問い合わせと更新の分離 内容 リファクタリング名 問い合わせと更新の分離 適用ケース要約 1つのメソッドが値を返すと同時にオブジェクトの状態を変更している 適用内…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | メソッドの隠蔽

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 メソッドの隠蔽 内容 リファクタリング名 メソッドの隠蔽 適用ケース要約 メソッドが自分の定義されているクラス意外からまったく使用されていない 適用内容要約 その…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | setメソッドの削除

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 setメソッドの削除 内容 リファクタリング名 setメソッドの削除 適用ケース要約 フィールドの値が生成時に設定され、決して変更されない 適用内容要約 そのフィールド…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | 引数オブジェクトの導入

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 引数オブジェクトの導入 内容 リファクタリング名 引数オブジェクトの導入 適用ケース要約 本来まとめて扱うべき一覧の引数がある 適用内容要約 それらをオブジェクト…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | 引数の削除

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 引数の削除 内容 リファクタリング名 引数の削除 適用ケース要約 ある引数が、もはやメソッド本体から使われていない。 適用内容要約 引数を削除する 適用詳細 リファ…

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | 引数の追加

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 引数の追加 内容 リファクタリング名 引数の追加 適用ケース要約 あるメソッドが、呼び出し元からより多くの情報を必要としている 適用内容要約 その情報を渡すために…