勉強日記

チラ裏

PoEAA

PoEAA ch13 Query Object

martinfowler.com Query Object How It Works When to Use It Further Reading コード例 英語 Query Object An object that represents a database query. SQLを直接使うと生じる問題: アプリケーション開発者がSQLに不慣れ アプリケーションコードとSQLとの…

PoEAA ch18 Money

martinfowler.com Money How It Works When to Use It Example: A Money Class (Java) 英語 Money Represents a monetary value. 世界のコンピュータの大部分は金絡みの計算をする 主だった言語が第一級のMoney型を提供しないのが不思議で仕方がない 言語が…

PoEAA ch18 Record Set

martinfowler.com Record Set How It Works Explicit Interface When to Use It 英語 Record Set An in-memory representation of tabular data. (本書執筆時点で)20年来、データベースのデータ表現は表形式の関係データ 大小さまざまなRDBMSベンダによるサ…

PoEAA ch18 Special Case

martinfowler.com Special Case How It Works When to Use It Further Reading Example: A Simple Null Object (C#) Special Case A subclass that provides special behavior for particular cases. null撲滅委員会 静的型付き言語では、コンパイラチェック…

PoEAA ch18 Value Object

martinfowler.com Value Object How It Works .NET Implementation When to Use It 名前の衝突 Value Object A small simple object, like money or a date range, whose equality isn't based on identity. 参照オブジェクトと値オブジェクトを区別すること…

PoEAA ch18 Layer Supertype

martinfowler.com Layer Supertype How It Works When to Use It Example: Domain Object (Java) Layer Supertype A type that acts as the supertype for all types in its layer. レイヤーを構成する全オブジェクト共通の振る舞いを、レイヤー共通の基底ク…

Laravel Meetup Tokyo Vol.12 参加した

メモ LaravelTokyo Eloquentに別れを告げるタイミングについて考えた / 吉田あひる ORM x Active Record x Domain Model 【補】Domain Modelではなくないか Domain LayerのことをDomain Modelって言ってるのかな Eloquentの功罪 功 高機能 罪 クエリ最適化 s…

PoEAA ch18 Registry

martinfowler.com Registry How It Works When to Use It Example: A Singleton Registry (Java) Example: Thread-Safe Registry 英語 Registry A well-known object that other objects can use to find common objects and services. OOPでオブジェクトを…

PoEAA ch18 Gateway

martinfowler.com Gateway How It Works When to Use It Example: A Gateway to a Proprietary Messaging Service (Java) 英語 Gateway An object that encapsulates access to an external system or resource. OOシステムはオブジェクトではない外部リソー…

PoEAA ch18 Separated Interface

martinfowler.com Separated Interface How It Works When to Use It Separated Interface Defines An Interface In A Separate Package From Its Implementation. 開発を進めるにあたり、システムの部品間の結合を減らして品質を高めることがある どうやる …

PoEAA ch18 Mapper

martinfowler.com Mapper How It Works When to Use It Mapper An object that sets up a communication between two independent objects. 2つのサブシステムをつなぐ 疎結合に保ちたい 変更できないから 変更できるにしても、依存させたくないから Mapper …

PoEAA ch10 Active Record

martinfowler.com Active Record How It Works When To Use It Example: A Simple Person (Java) 英語 Active Record An object that wraps a row in a database table or view, encapulates the database access, and adds domain logic on that data. How …

PoEAA ch10 Table Data Gateway

martinfowler.com Table Data Gateway How It Works When To Use It Further Reading Example: Person Gateway (C#) Example: Using ADO.NET Data Sets (C#) Table Data Gateway An object that acts as a Gateway to a database table. One instance handle…

PoEAA ch9 Service Layer

martinfowler.com Service Layer How It Works Kinds of "Business Logic" Implementation Variations To Remote or Not to Remote Identifying Services and Operations Java Implementation When To Use It Further Reading Example: Revenue Recognition …

PoEAA ch10 Row Data Gateway

martinfowler.com Row Data Gateway How It Works When to Use It Example: A Person Record (Java) Example: A Data Holder For a Domain Object (Java) 英語 Row Data Gateway An object that acts as a Gateway to a single record in a data source. The…

PoEAA ch9 Table Module

martinfowler.com Table Module How It Works When to Use It Example: Revenue Recognition (C#) A single instance that handles the business logic for all rows in a database table or view. Table Module OOのキーの一つ: データと振る舞いとをひとま…

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 Ch4 Web Presentation

martinfowler.com Web Presentation View Patterns Input Controller Pattenrs Web Presentation 執筆時点で数年間におけるEnterprise Applicationsの最大の変化 WebブラウザUIの登場 つよみ クライアントアプリケーションのインストール不要 共通のUIアプロ…

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」という言葉を定義する 共通点 シ…