25
DCI on Rails: Embrace Context Vladimir Rybas @vrybas http://vrybas.github.io

DCI on Rails: Embrace Context

Embed Size (px)

Citation preview

DCI on Rails: Embrace

Context

Vladimir Rybas

@vrybas

http://vrybas.github.io

Obese Models

Tight Coupling

Loose Coupling

OOP is Dead?“…A class tells us

everything about the

properties of the individual

objects that are its

instances. It does not tell

us anything about how

these instances work

together to achieve the

system behavior.”

Trygve M. H. Reenskaug

Account Creation

AccountsController Account

Account Creation

AccountsController Account

Subscription

Account Creation

AccountsController Account

Subscription

Account Creation

AccountsController Account

Subscription

Account Locking

AccountsController Account

Subscription

Admin::AccountsController

Subscription Extending

AccountsController Account

Subscription

Admin::AccountsController

SubscriptionsController

Subscription Extending

AccountsController Account

Subscription

Admin::AccountsController

SubscriptionsController

DCI: Data Context Interaction

AccountsController Account

Subscription

Admin::AccountsController

SubscriptionsController

Account Creation Context

AccountsController Account

Subscription

Admin::AccountsController

SubscriptionsController

Account Locking Context

AccountsController Account

Subscription

Admin::AccountsController

SubscriptionsController

Use Cases

Account Creation

Account Locking

Subscription

Extending

Use Cases & Entities

Account Creation

Account Locking

Subscription

Extending

User

Account

Subscription

Use Cases & Entities

Account Creation

Account Locking

Subscription

Extending

User

Account

Subscription

Context-full Context-less

Example Structure

Example Structure

Example Structure

Example Structure

Thanks!Questions?

We’re hiring at

http://oozou.com

[email protected]

http://blog.oozou.com