勉強日記

チラ裏

デザインパターン

PoEAA ch9 Domain Model

martinfowler.com How It Works Java Implementation When to Use It Further Reading Example: Revenue Recognition (Java) An object model of the domain that incorporates both behavior and data. ビジネスロジックは非常に複雑になりうる オブジェク…

PoEAA Ch9 Transaction Script

martinfowler.com Transaction Script How It Works When to Use It The Revenue Recognition Problem Example: Revenue Recognition (Java) 英語 Transaction Script Organizes business logic by procedures where each procedure handles a single reques…

poeaa ch8 Putting It All Together (1/2)

martinfowler.com Putting It All Together Starting with the Domain Layer Down to the Data Source Layer Data Source for Transaction Script Data Source for Table Module Data Source for Domain Model The Presentation Layer 英語 Putting It All T…

poeaa ch7 Distribution Strategies

martinfowler.com Distribution Strategies The Allure of Distributed Objects Remote and Local Interfaces Where You Have to Distribute Working with the Distribution Boundary Interfaces for Distribution 英語 Distribution Strategies 分散コンピ…

poeaa ch5 4/4

martinfowler.com Pattern for Offline Concurrency Control Optimistic Offline Lock Pessimistic Offline Lock Coarse-Grained Lock Implicit Lock 選定 困難 Application Server Concurrency Pattern for Offline Concurrency Control 並列性の問題は、可…

PoEAA ch5 3/4

martinfowler.com Transactions ACID Transactonal Resources Reducing Transaction Isolation for Liveness Business and System Transactions Transactions 企業アプリケーションにおける、並列性を取り回す主要な道具 "transaction"という言葉 金銭やモノ…

poeaa ch5 2/4

martinfowler.com Optimistic and Pessimistic Concurrency Control Preventing Inconsistent Reads Deadlocks Optimistic and Pessimistic Concurrency Control 並列制御 楽観ロック ロックしてねえじゃねえかってやつ 言葉として便利だし、広まってしまっ…

PoEAA ch5 Concurrency 1/4

martinfowler.com Concurrency Concurrency Problems Execution Contexts Isolation and Immutability Optimistic and Pessimistic Concurrency Control えいご Concurrency 並列性はソフトウェア開発において最も骨の折れる側面のひとつ 複数のスレッドで同…

PoEAA Ch6 Session State

martinfowler.com Session State The Value of Statelessness Session State Way to Store Session State Session State 同時処理 トランザクションにも2種類ある(ch5) ビジネストランザクション システムトランザクション stateless/stateful sessionに関す…

PoEAA Part 1 Chapter 3 Mapping to Relational Databases

前章の話 Mapping to Relational Databases Architectural Patterns The Behavioral Problem Reading in Data Structural Mapping Patterns Mapping Relationships Inheritance Building the Mapping Double Mapping Using Metadata Database Connections So…

PoEAA Part 1 Chapter 2 Organizing Domain Logic

前章の話 Organizing Domain Logic Transaction Script Domain Model Table Module Making a Choice Service Layer 英語 前章の話 アプリケーションを層分けしろ プレゼンテーション層 ドメイン層 データソース層 Organizing Domain Logic ドメインロジック…

PoEAA Part 1 Chapter 1 Layering

まえがき The Evolution of Layers in Enterprise Applications The Three Principal Layers Choosing Where To Run Your Layers 英語 まえがき レイヤ分けは普遍的 マシンのアーキテクチャ プログラミング言語 on OS on CPU命令セット on 論理ゲート ネット…

PoEAA Introduction

Architecture Enterprise Applications Kinds of Enterprise Application Thinking About Performance Patterns The Structure of the Patterns Limitations of These Patterns 英語 Architecture 多くの人が「Architecture」という言葉を定義する 共通点 シ…

PoEAA Preface

まえがきofまえがき Who This Book Is For 英語 まえがきofまえがき エンタープライズアプリケーションは本質的に複雑 例: バックエンド賃貸システム 賃貸同意書がさまざま異なる 契約を勝ち取るためにあれこれ変えるから この本は、複雑性を御するための設…

DDD Part2 Ch.4 ISOLATING THE DOMAIN

www.informit.com Isolating the Domain LAYERED STRUCTURE Partitioning Online Banking Functionality into Layers Relating Layers Architectural Frameworks The Domain Layer Is Where The Model Lives THE SMART UI "ANTI-PATTERN" Other Kinds of Iso…

GoF本 Discussion of Behavioral Patterns

変化するものをカプセル化する 引数としてのオブジェクト 一元管理か分散か リクエストの送信/受信の疎結合化 併用 振る舞いのパターン同士 振る舞いのパターンと他の 英語 変化するものをカプセル化する ここでは「カプセル化する」 = 「同じインターフェー…

GoF本 Visitor

ねらい モチベーション つかいどころ 構造 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと Visitをオーバーロードする ダブルディスパッチ オブジェクト構造の走査は誰が行う? 関連するパターン 英語 ねらい あるクラス群(Element…

GoF本 Template Method

ねらい つかいどころ 登場人物 結果 実装にあたり考えるべきこと 関連するパターン ねらい アルゴリズムの骨組みを基底クラスで定義 実装を派生クラスにゆだねる つかいどころ クラスを派生してカスタマイズしたい カスタマイズしても変わらない骨組みを共通…

GoF本 Strategy

ねらい AKA つかいどころ 構造 オブジェクトの集約版 ジェネリクス版 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン 英語 ねらい アルゴリズムをカプセル化し、他のアルゴリズムと可換にする アルゴリズム利用側…

GoF本 State

ねらい AKA つかいどころ 構造 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 誰が状態遷移を定義するか テーブルにより遷移を表現する方法 stateオブジェクトの生成・解体のポリシー 動的継承 関連するパターン 英語 ねらい 状態…

GoF本 Observer

ねらい AKA モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン 英語 ねらい 1対多のオブジェクト依存関係において、1のオブジェクトの状態の変更を、多のオブジェクトすべてに自動で通…

GoF本 Memento

ねらい AKA モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン ねらい カプセル化を違反することなく、オブジェクトの内部状態を外部に書き出し、後で再度読み込む AKA Token モチベー…

GoF本 Mediator

ねらい モチベーション つかいどころ 構造 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン ねらい オブジェクトの相互作用をカプセル化するためのオブジェクトを定義する オブジェクトどうしを疎結合にする モチ…

GoF本 Iterator

ねらい AKA モチベーション つかいどころ 構造 登場人物 クライアントコードからの利用 実装にあたり考えるべきこと Iteratorの分類 -- External/Internal TODO 走査アルゴリズムをどのクラスに定義するか どれだけ堅牢にするか 走査のメソッドの追加 Iterat…

GoF本 Interpreter

ねらい モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと Compositeとどうちがうの 関連するパターン よくわかんなかったやつ ねらい 言語の文法をクラスの木構造で表現する 抽象構文木(AST: Abstract S…

GoF本 Command

ねらい AKA モチベーション つかいどころ 登場人物 【補】具体例 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン ねらい リクエストをオブジェクトとしてカプセル化 クライアントを異なるリクエストでパラメタライズできる…

GoF本 Chain of Responsibility

ねらい モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン ねらい リクエストの送信者と受信者との密結合をほぐす 1つ以上のオブジェクトにリクエストの処理の機会を与える モチベーシ…

GoF本 Discussions of Structural Patterns

構造のパターンの類似性 AdapterとBridge 共通点 相違点 AdapterとFacade CompositeとDecorator 共通点 相違点 併用 DecoratorとProxy 共通点 相違点 英語 構造のパターンの類似性 登場人物と、クライアントコードからの利用が類似している が、ねらいが全然…

GoF本 Proxy

ねらい AKA モチベーション つかいどころ Remote Proxy Virtual Proxy Protection Proxy Smart Reference 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 言語の機能を使うと幸せになれることも 演算子オーバーロード マジックメソ…

GoF本 Flyweight

ねらい モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン 英語 ねらい 小さなオブジェクトを大量に利用する際、オブジェクトを共用することで空間を節約する モチベーション クラスの…