読者です 読者をやめる 読者になる 読者になる

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メソッドの削除 適用ケース要約 フィールドの値が生成時に設定され、決して変更されない 適用内容要約 そのフィールド…

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

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

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

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

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

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

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

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 メソッド名の変更 内容 リファクタリング名 メソッド名の変更 適用ケース要約 メソッドの名前がその目的を正しく表現できていない 適用内容要約 メソッド名の変更 適…

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

パンくず リファクタリング-プログラマーの体質改善テクニック メソッド呼び出しの単純化 内容 メソッド呼び出しの単純化 リファクタリング名 対象 対応 メソッド名の変更 メソッドの名前がその目的を正しく表現できていない メソッド名の変更 引数の追加 あ…

書籍 リファクタリング−プログラマーの体質改善 | 条件式の単純化 | 表明の導入

パンくず リファクタリング-プログラマーの体質改善テクニック 条件式の単純化 表明の導入 内容 リファクタリング名 表明の導入 適用ケース要約 プログラムの状態について何らかの条件を前提としているコードがある 適用内容要約 アサーションによって、前提…

書籍 リファクタリング−プログラマーの体質改善 | 条件式の単純化 | ヌルオブジェクトの導入

パンくず リファクタリング-プログラマーの体質改善テクニック 条件式の単純化 ヌルオブジェクトの導入 内容 リファクタリング名 ヌルオブジェクトの導入 適用ケース要約 コードの中でnull(nil)値のチェックを繰り返している 適用内容要約 null(nil)値の代わ…

書籍 リファクタリング−プログラマーの体質改善 | 条件式の単純化 | ポリモーフィズムによる条件記述の置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック 条件式の単純化 ポリモーフィズムによる条件記述の置き換え 内容 リファクタリング名 ポリモーフィズムによる条件記述の置き換え 適用ケース要約 オブジェクトのタイプによってふるまいを変える…

書籍 リファクタリング−プログラマーの体質改善 | 条件式の単純化 | ガード節による入れ子条件記述の置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック 条件式の単純化 ガード節による入れ子条件記述の置き換え 内容 リファクタリング名 ガード節による入れ子条件記述の置き換え 適用ケース要約 正常な実行経路がはっきりしないような条件分岐を持…

書籍 リファクタリング−プログラマーの体質改善 | 条件式の単純化 | 制御フラグの削除

パンくず リファクタリング-プログラマーの体質改善テクニック 条件式の単純化 制御フラグの削除 内容 リファクタリング名 制御フラグの削除 適用ケース要約 一連の論理式で使われる制御フラグとして機能している変数がある 適用内容要約 代わりにbreakやret…

書籍 リファクタリング−プログラマーの体質改善 | 条件式の単純化 | 重複した条件の断片の統合

パンくず リファクタリング-プログラマーの体質改善テクニック 条件式の単純化 重複した条件の断片の統合 内容 リファクタリング名 重複した条件の断片の統合 適用ケース要約 条件式のすべての分岐に同じコード片が含まれている 適用内容要約 その部分を式の…

書籍 リファクタリング−プログラマーの体質改善 | 条件式の単純化 | 条件記述の統合

パンくず リファクタリング-プログラマーの体質改善テクニック 条件式の単純化 条件記述の統合 内容 リファクタリング名 条件記述の統合 適用ケース要約 同じ結果になる条件テストが複数並んでいる 適用内容要約 それらを1つの条件式にまとめ、メソッドとし…

書籍 リファクタリング−プログラマーの体質改善 | 条件式の単純化 | 条件式の分解

パンくず リファクタリング-プログラマーの体質改善テクニック 条件式の単純化 条件式の分解 内容 リファクタリング名 条件式の分解 適用ケース要約 複雑な条件文(if-then-else)がある 適用内容要約 条件部、"then"部、"else"部からメソッドを抽出する。 …

書籍 リファクタリング−プログラマーの体質改善 | 条件式の単純化

パンくず リファクタリング-プログラマーの体質改善テクニック 条件式の単純化 内容 データの再構成 リファクタリング名 対象 対応 条件記述の分解 複雑な条件文(if-then-else)がある 条件部、"then"部、"else"部からメソッドを抽出する。 条件記述の統合 …

書籍 リファクタリング−プログラマーの体質改善 | データの再編成 | フィールドによるサブクラスの置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック データの再編成 フィールドによるサブクラスの置き換え 内容 リファクタリング名 フィールドによるサブクラスの置き換え 適用ケース要約 定数を返すメソッド以外に違いのないサブクラスがある …

書籍 リファクタリング−プログラマーの体質改善 | データの再編成 | State/Strategyによるタイプコードの置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック データの再編成 State/Strategyによるタイプコードの置き換え 内容 リファクタリング名 State/Strategyによるタイプコードの置き換え 適用ケース要約 クラスのふるまいに影響を与えるタイプコ…

書籍 リファクタリング−プログラマーの体質改善 | データの再編成 | サブクラスによるタイプコードの置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック データの再編成 サブクラスによるタイプコードの置き換え 内容 リファクタリング名 サブクラスによるタイプコードの置き換え 適用ケース要約 クラスのふるまいに影響を与えるタイプコードが使わ…

書籍 リファクタリング−プログラマーの体質改善 | データの再編成 | クラスによるタイプコードの置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック データの再編成 クラスによるタイプコードの置き換え 内容 リファクタリング名 クラスによるタイプコードの置き換え 適用ケース要約 振る舞いに影響しない数字のタイプコードを持つクラスがある…

書籍 リファクタリング−プログラマーの体質改善 | データの再編成 | 双方向関連の単方向への変更

パンくず リファクタリング-プログラマーの体質改善テクニック データの再編成 双方向関連の単方向への変更 内容 リファクタリング名 双方向関連の単方向への変更 適用ケース要約 相互に参照しているが、片方の参照が不要になった場合 適用内容要約 単方向に…

書籍 リファクタリング−プログラマーの体質改善 | データの再編成 | 単方向関連の双方向への変更

パンくず リファクタリング-プログラマーの体質改善テクニック データの再編成 単方向関連の双方向への変更 内容 リファクタリング名 単方向関連の双方向への変更 適用ケース要約 相互に参照が必要なクラスがあるが、片方からの参照しかない 適用内容要約 双…

書籍 リファクタリング−プログラマーの体質改善 | データの再編成 | オブジェクトによる配列の置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック データの再編成 オブジェクトによる配列の置き換え 内容 リファクタリング名 オブジェクトによる配列の置き換え 適用ケース要約 一部の要素が別の意味を持つようなArrayがある 適用内容要約 Arr…

書籍 リファクタリング−プログラマーの体質改善 | データの再編成 | データクラスによるレコードの置き換え

パンくず リファクタリング-プログラマーの体質改善テクニック データの再編成 データクラスによるレコードの置き換え 内容 リファクタリング名 データクラスによるレコードの置き換え 適用ケース要約 古いプログラミング環境のレコード構造とインターフェー…

書籍 リファクタリング−プログラマーの体質改善 | データの再編成 | コレクションのカプセル化

パンくず リファクタリング-プログラマーの体質改善テクニック データの再編成 コレクションのカプセル化 内容 リファクタリング名 コレクションのカプセル化 適用ケース要約 メソッドがコレクションを返している 適用内容要約 メソッドにはコレクションのコ…