SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
DCI
Data, Context and Interaction
Trygve M. H. Reenskaug
Создатель MVC (1978-1979);

В 2000 начал разработку
новой парадигмы;

В 2006 была готова рабочая
модель;

К 2007-середине 2008 был
готов прототип на C++.
Зачем?
Повысить читаемость кода;

Разделить представление чем система
является, от того, что система делает;

Чтобы поддержать мышление объектами, что
ближе к тому, как думают люди, в замен
мышлению классами.
Составные части
Data
содержит только данные и методы, которые непосредственно к ним
относятся (напр. валидация)


Context
Класс или экземпляр, который содержит роли, необходимые для
выполнения определенного сценария. Роли подмешиваются к
объектам в рантайме.


Interaction
Содержит набор методов, с помощью которых осуществляется
взаимодействие.
Let’s talk about Ruby
What about Python?
HTTPS://GITHUB.COM/AMOLENAAR/ROLES
Rails
Rails — это MVC фреймворк (спасибо, Кэп!)

Поэтому работать приходится поверх MVC
Плюсы
На выходе получаем хорошо
структурированный код;

Код легче тестировать;

Улучшаем ООП;

Решаем некоторые классические ООП
проблемы (Account#transfer)
Минусы
Нужно серьезно перестроить мозг

Фреймворки еще не готовы на 100%

На выходе можно получить половинчатое
решение
Problem?
Jim Gay http://youtu.be/lhFSc0dWsto
http://blog.firsthand.ca/2011/10/rails-is-not-your-application.html
Uncle Bob http://www.youtube.com/watch?v=WpkDN78P884

Contenu connexe

Similaire à Data, Context and Interaction

Sql Server Data Services
Sql Server Data ServicesSql Server Data Services
Sql Server Data ServicesMedia Gorod
 
Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.EatDog
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftAnton Loginov
 
О концептуальном моделировании
О концептуальном моделированииО концептуальном моделировании
О концептуальном моделированииОтшельник
 
Больше чем анализ
Больше чем анализБольше чем анализ
Больше чем анализSQALab
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKПрограммируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKCisco Russia
 
IOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows AzureIOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows AzureVadim Novitskiy
 
Powershell, Graphs and more. Or how to find dependencies in your systems
Powershell, Graphs and more. Or how to find dependencies in your systemsPowershell, Graphs and more. Or how to find dependencies in your systems
Powershell, Graphs and more. Or how to find dependencies in your systemsAndrey Vernigora
 
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"GeeksLab Odessa
 
документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3rit2011
 
Управление &#1087...
Управление &#1087...Управление &#1087...
Управление &#1087...akor
 
Архитектура программных систем на Node.js
Архитектура программных систем на Node.jsАрхитектура программных систем на Node.js
Архитектура программных систем на Node.jsTimur Shemsedinov
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET CoreAndrew Gubskiy
 
Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Sergey Nemchinsky
 

Similaire à Data, Context and Interaction (20)

Sql Server Data Services
Sql Server Data ServicesSql Server Data Services
Sql Server Data Services
 
Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на Swift
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
О концептуальном моделировании
О концептуальном моделированииО концептуальном моделировании
О концептуальном моделировании
 
Больше чем анализ
Больше чем анализБольше чем анализ
Больше чем анализ
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKПрограммируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
 
Wild microservices and imaginary DevOps
Wild microservices and imaginary DevOpsWild microservices and imaginary DevOps
Wild microservices and imaginary DevOps
 
IOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows AzureIOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows Azure
 
тема 12
тема 12тема 12
тема 12
 
Powershell, Graphs and more. Or how to find dependencies in your systems
Powershell, Graphs and more. Or how to find dependencies in your systemsPowershell, Graphs and more. Or how to find dependencies in your systems
Powershell, Graphs and more. Or how to find dependencies in your systems
 
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
 
документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3
 
Nrdbms
NrdbmsNrdbms
Nrdbms
 
Управление &#1087...
Управление &#1087...Управление &#1087...
Управление &#1087...
 
Архитектура программных систем на Node.js
Архитектура программных систем на Node.jsАрхитектура программных систем на Node.js
Архитектура программных систем на Node.js
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
Hpc Day
Hpc DayHpc Day
Hpc Day
 
Domain Context Integration
Domain Context IntegrationDomain Context Integration
Domain Context Integration
 
Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"
 

Data, Context and Interaction