Tbpgr Blog

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

Refactoring to Patterns

書籍 Refactoring to Patterns | Utilities

パンくず 書籍 Refactoring to Patterns Utilities 概要 Utilities、ユーティリティーに関するリファクタリング ユーティリティーに関するリファクタリング Refactoring リファクタリング Chain Constructors コンストラクタの連鎖 Unity Interface インター…

書籍 Refactoring to Patterns | Accumulation| Move Accumulation to Visitor

パンくず 書籍 Refactoring to Patterns Accumulation Move Accumulation to Visitor 概要 Move Accumuration to Visitorについて 使用する場面 1つのメソッドが異種のオブジェクトから情報を累積する場合 対応方法 Visitorパターンを使用する 利点と欠点 利…

書籍 Refactoring to Patterns | Accumulation| Move Accumulation to Collecting Parameter

パンくず 書籍 Refactoring to Patterns Accumulation Move Accumulation to Collecting Parameter 概要 Move Accumulation to Collecting Parameterについて 使用する場面 一つのローカル変数に対する変更をまとめて行なっている一つのメソッドがあるなら、…

書籍 Refactoring to Patterns | Accumulation

パンくず 書籍 Refactoring to Patterns Accumulation 概要 Accumulation、蓄積に関するリファクタリング 蓄積に関するリファクタリング Refactoring リファクタリング Move Accumulation to Collectiing Parameter Collecting Parameterによる累積処理の書…

書籍 Refactoring to Patterns | Utilities | Extract Parameter

パンくず 書籍 Refactoring to Patterns Utilities Extract Parameter 概要 Extract Parameterについて 使用する場面 委譲の利用時に他のオブジェクトのインスタンス生成のための パラメータが必要な場合。 対応方法 Extract Parameterを適用する。 サンプル…

書籍 Refactoring to Patterns | Utilities | Unity Interface

パンくず 書籍 Refactoring to Patterns Utilities Unity Interface 概要 Unity Interfaceについて 使用する場面 複数の子クラスに、共通するシグニチャのメソッドがあるがインターフェース もしくは抽象基底クラスにインターフェースが用意されていない。 …

書籍 Refactoring to Patterns | Utilities | Chain Constructors

パンくず 書籍 Refactoring to Patterns Utilities Chain Constructors 概要 Chain Constructorsについて 使用する場面 複数のコンストラクタの内容が重複している。 対応方法 Chain Constructorsを適用する。 全体に共通するコンストラクタを用意し、各コン…

書籍 Refactoring to Patterns | Protection | Introduce Null Object

パンくず 書籍 Patterns to Patterns Protection Introduce Null Object 概要 Introduce Null Objectについて 使用する場面 大量のNullチェックがある場合 対応方法 Null Objectを導入します 利点と欠点 利点 ・Nullロジックの重複を防ぎ、Nullエラーを防ぐ …

書籍 Refactoring to Patterns | Protection | Limit Instantiation with Singleton

パンくず 書籍 Patterns to Patterns Protection Limit Instantiation with Singleton 概要 Limit Instantiation with Singletonについて 使用する場面 パフォーマンスやメモリーの、都合でひとつのインスタンスにしたい場合 対応方法 Singletonパターンを適…

書籍 Refactoring to Patterns | Protection

パンくず 書籍 Refactoring to Patterns Protection 概要 Protection、保護に関するリファクタリング 保護に関するリファクタリング Refactoring リファクタリング Replace Type Code with Class クラスによる型コードの置換 Limit Instantiation with Singl…

書籍 Refactoring to Patterns | Protection| Replace Type Code with Class

パンくず 書籍 Patterns to Patterns Protection Replace Type Code with Class 概要 Replace Type Code with Classについて 使用する場面 タイプの指定ミスによるバグが想定される場合。 対応方法 Stateパターンを適用します 利点と欠点 利点 ・不正なパラ…

書籍 Refactoring to Patterns | Generalization | Replace Inplicit Language with Interpreter

パンくず 書籍 Patterns to Patterns Generalization Replace Inplicit Language with Interpreter 概要 Replace Inplicit Language with Interpreterについて 使用する場面 シンプルだが組み合わせが多いような問題の解決が必要。 対応方法 Interpreterパタ…

書籍 Refactoring to Patterns | Generalization | Extract Adapter

パンくず 書籍 Patterns to Patterns Generalization Extract Adapter 概要 Extract Adapterについて 使用する場面 複数バージョンをサポートしなければならない場合。 対応方法 Adapterを適用する。 利点と欠点 利点 ・API,ライブラリ、コンポーネントの異…

書籍 Refactoring to Patterns | Generalization | Unify Interface with Adapter

パンくず 書籍 Patterns to Patterns Generalization Unify Interface with Adapter 概要 Unify Interface with Adapterについて 使用する場面 ・2つのクラスが似ているがインターフェースが異なる場合。 ・サードパーティの製品等、制約の関係上インターフ…

書籍 Refactoring to Patterns | Generalization | Replace Hard-Cord Notification with Observer

パンくず 書籍 Patterns to Patterns Generalization Replace Hard-Cord Notification with Observer 概要 Replace Hard-Cord Notification with Observerのリファクタリングについて 使用する場面 1つのReceiverしか受け取らないNotifierがあり、ハードコー…

書籍 Refactoring to Patterns | Generalization | Replace One/Many Distinction with Composite

パンくず 書籍 Patterns to Patterns Generalization Replace One/Many Distinction with Composite 概要 Replace One/Many Distinction with Compositeのリファクタリングについて 使用する場面 あるクラスがひとつのオブジェクトと多数のオブジェクトを扱…

書籍 Refactoring to Patterns | Generalization | Extract Composite

パンくず 書籍 Patterns to Patterns Generalization Extract Composite 概要 Extract Compositeのリファクタリングについて 使用する場面 2つ以上の似たクラスを保持している場合 対応方法 Compositeパターンを適用する。 利点と欠点 利点 ・子の格納と処理…

書籍 Refactoring to Patterns | Generalization| Form Template Method

パンくず 書籍 Patterns to Patterns Generalization Form Template Method 概要 Form Template Methodのリファクタリングについて 使用する場面 サブクラスに変数となる箇所と非変数となる箇所が混ざっている場合、非変数となる箇所はサブクラスで重複して…

書籍 Refactoring to Patterns | Generalization

パンくず 書籍 Refactoring to Patterns Generalization 概要 Generalization、汎化に関するリファクタリング 汎化に関するリファクタリング Refactoring リファクタリング Form Template Method Template Methodの形成 Extract Composite Compositeの抽出 R…

書籍 Refactoring to Patterns | Simplification | Move Embellishment to Decorator

パンくず 書籍 Patterns to Patterns Simplification Move Embellishment to Decorator 概要 Move Embellishment to Decoratorのリファクタリングについて 使用する場面 核となる機能に飾るような機能を追加する場合、 既存のクラスに特定のケースのみ動作す…

書籍 Refactoring to Patterns | Simplification | Replace Conditional Logic with Strategy

パンくず 書籍 Patterns to Patterns Simplification Replace Conditional Logic with Strategy 概要 Replace Conditional Logic with Strategyのリファクタリングについて 使用する場面 Martin Fowler曰く「プログラムの複雑性のもっとも一般的なものの一つ…

書籍 Refactoring to Patterns | Simplification | Compose Method

パンくず 書籍 Patterns to Patterns Simplification Compose Method 概要 Compose Methodのリファクタリングについて 使用する場面 雑然とした長い処理のメソッドなどがある場合 対応方法 同レベルの粒度でExtract Methodを適用する。 役割を表す分かりやす…

書籍 Refactoring to Patterns | Simplification

パンくず 書籍 Refactoring to Patterns Simplification 概要 Simplification、単純化に関するリファクタリング 単純化に関するリファクタリング Refactoring リファクタリング 補足 Compose Method メソッドの構造化 ーー Replace Conditional Logic with S…

書籍 Refactoring to Patterns | Creation | Inline Singleton

パンくず 書籍 Patterns to Patterns Creation Inline Singleton 概要 Inline Singletonのリファクタリングについて 使用する場面 Singletonitisは、Singletonパターンを適用することと定義します。 Singletonの目的はインスタンスが一つしかないことを保証…

書籍 Refactoring to Patterns | Creation | Encapsulate Composit Builder

パンくず 書籍 Patterns to Patterns Creation Encapsulate Composit Builder 概要 Encapsulate Composit Builderのリファクタリングについて 使用する場面 複雑化したCompositeを含む生成ロジックをクライアントから切り離したい場合 対応方法 Builderを作…

書籍 Refactoring to Patterns | Creation | Introduce Polymorphic Creation With Factory Method

パンくず 書籍 Patterns to Patterns Creation Introduce Polymorphic Creation With Factory Method 概要 Introduce Polymorphic Creation With Factory Methodのリファクタリングについて 使用する場面 複数のクラスを同一の型で扱うFactory Methodにした…

書籍 Refactoring to Patterns | Creation | Encapsulate Classes with Factory

パンくず 書籍 Patterns to Patterns Creation Encapsulate Classes with Factory 概要 Encapsulate Classes with Factoryのリファクタリングについて 使用する場面 一つのインターフェースを実装したクラスが複数あった場合に、 必要最低限のクラスのみ外部…

書籍 Refactoring to Patterns | Creation | Move Creation Knowledge to Factory

パンくず 書籍 Patterns to Patterns Creation Move Creation Knowledge to Factory 概要 Move Creation Knowledge to Factoryのリファクタリングについて 使用する場面 オブジェクトの生成にいくつか設定が必要であり、 生成のための処理を各クライアント側…

書籍 Refactoring to Patterns | Creation | Replace Constructors with Creation Method

パンくず 書籍 Patterns to Patterns Creation Replace Constructors with Creation Method 概要 Replace Constructors with Creation Methodのリファクタリングについて 使用する場面 オーバーロードした多数のコンストラクタが存在し、 クラスを利用する側…

書籍 Refactoring to Patterns | Creation

パンくず 書籍 Refactoring to Patterns Creation 概要 Creation、生成に関するリファクタリング 生成に関するリファクタリング Refactoring リファクタリング Replace Constructors with Creation Method Creation Methodによるコンストラクタの置換 Move C…

書籍 Refactoring to Patterns | Code Smells

パンくず 書籍 Refactoring to Patterns Code Smells 概要 リファクタリングが必要となる「コードの臭い」について 内容 リファクタリングが必要になるコードにはそれぞれの問題特有の「臭い」があります。by Martin Fowler この「臭い」をかぎわける能力を…

書籍 Refactoring to Patterns | Patterns | Refactoring to,towards,and away from Patterns

パンくず 書籍 Refactoring to Patterns Patterns Refactoring to,towards,and away from Patterns 概要 Refactoring to,towards,and away from Patternsについて 詳細 パターンによるリファクタリングの適用法について以下の表があります。 Pattern To Towa…

書籍 Refactoring to Patterns | Patterns

パンくず 書籍 Refactoring to Patterns Patterns 概要 パターンについて 各章 No 見出し 詳細 リンク No1 What Is Patterns パターンとは建築家Alexanderが考案したものをKent BeckやMartin Fowlerらがソフトウェア開発に適用したものである なし No2 Patte…

書籍 Refactoring to Patterns | Refactoring | Composite and Test-Driven Refactorings

パンくず 書籍 Refactoring to Patterns Refactoring Composite and Test-Driven Refactorings 概要 合成リファクタリングとテスト駆動リファクタリングについて 詳細 合成リファクタリングとは低レベルのリファクタリングで構成される 高レベルなリファクタ…

書籍 Refactoring to Patterns | Refactoring | Human Readable Code

パンくず 書籍 Refactoring to Patterns Refactoring Human Readable Code 概要 人に読めるコードの価値について 詳細 Martin Fowler曰く 「どんな馬鹿でもコンピューターが理解するコードは書ける。 良いプログラマーは人の理解できるコードを書く」 Any fo…

書籍 Refactoring to Patterns | Refactoring | What Motivate Us to Refactoring

パンくず 書籍 Refactoring to Patterns Refactoring What Motivate Us to Refactoring 概要 リファクタリングの動機とは? 詳細 多くの理由によりコードのリファクタリングを行う際、大抵の理由は共通の物である・コードの追加をより簡単にすること 技術的…

書籍 Refactoring to Patterns | Refactoring | What Is Refactoring

パンくず 書籍 Refactoring to Patterns Refactoring What Is Refactoring 概要 リファクタリングとは何か? 詳細 リファクタリングは振る舞いを変えずに内部構造を変えること。 リファクタリングは重複を取り除いたり、構造をシンプルにする。安全にリファ…

書籍 Refactoring to Patterns | Refactoring

パンくず 書籍 Refactoring to Patterns Refactoring 概要 リファクタリングについて 各章 No 見出し 詳細 リンク No1 What Is Refactoring リファクタリングとは何か? http://d.hatena.ne.jp/tbpg/20120419/1334851121 No2 What Motivate Us to Refactorin…

書籍 Refactoring to Patterns | Why I wrote this book | Evolutionary Design

パンくず 書籍 Refactoring to Patterns Why I wrote this book Evolutionary Design 概要 Evolutionary Designについて 詳細 偉大な設計そのものを学ぶよりも偉大な設計者の残した進化の過程を学ぶほうが パターンの理解が深まります。 仮に偉大な設計その…

書籍 Refactoring to Patterns | Why I wrote this book | Refactorng and Patterns

パンくず 書籍 Refactoring to Patterns Why I wrote this book Refactorng and Patterns 概要 Refactorng and Patternsについて 詳細 著者は多くのシステム開発を行う経験の中で、Martin Fowlerの『Refactoring』に書かれている多くのリファクタリングが 設…

書籍 Refactoring to Patterns | Why I wrote this book | Test-Driven Development and Continuous Refactoring

パンくず 書籍 Refactoring to Patterns Why I wrote this book Test-Driven Development and Continuous Refactoring 概要 Test-Driven Development and Continuous Refactoringについて 詳細 多くの素晴らしいXPのプラクティスのうちの2つであるテスト駆動…

書籍 Refactoring to Patterns | Why I wrote this book | The Patterns Panacea

パンくず 書籍 Refactoring to Patterns Why I wrote this book The Patterns Panacea 概要 The Patterns Panaceaについて 詳細 一見汎用的で洗練された万能薬のように思えるパターンだが、過信しすぎてはいけない。 ある開発で筆者がコードの修正にDecorato…

書籍 Refactoring to Patterns | Why I wrote this book | Over-Engineering

パンくず 書籍 Refactoring to Patterns Why I wrote this book Over-Engineering 概要 Over-Engineeringについて 詳細 必要以上に汎用性を持たせ、洗練させたコードは「Over-Engineering」です。 一部のプログラマーは、未来の要求を知っていると思い込みこ…

書籍 Refactoring to Patterns | Why I wrote this book

パンくず 書籍 Refactoring to Patterns Why I wrote this book 概要 筆者がこの書籍を書くに至った経緯について。 各章 No 見出し 詳細 リンク No1 Over-Engineering 必要以上に汎用性をもたせ、洗練したコードについて http://d.hatena.ne.jp/tbpg/2012041…

書籍 Refactoring to Patterns | Why I wrote this book | Under-Engineering

パンくず 書籍 Refactoring to Patterns Why I wrote this book Under-Engineering 概要 Under-Engineeringについて 詳細 「Under-Engineering」は「Over-Engineering」より一般的な問題です。 様々な理由により貧弱に設計されたシステムのことです。 例えば…

書籍 Refactoring to Patterns | Preface

パンくず 書籍 Refactoring to Patterns Preface 概要 書籍 Refactoring to Patternsの内容・目的・ターゲット・必要なバックグラウンド・ どのようにこの書籍を利用するかなどに関する序文。 詳細 about この書籍ではパターンによるリファクタリングでシス…

書籍 Refactoring to Patterns学習まとめ

概要 デザインパターンをリファクタリング過程で実施するためのテクニックに関する書籍である 『Refactoring to Patterns』に関する学習まとめです。 英書の技術書なのですが、あまり英語が得意ではないので誤訳等があるかもしれませんがご了承ください。 各…