data, context and interaction

13
DCI Data, Context and Interaction

Upload: dmitriy-rozhkov

Post on 08-Jul-2015

233 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Data, Context and Interaction

DCIData, Context and Interaction

Page 2: Data, Context and Interaction

Trygve M. H. ReenskaugСоздатель MVC (1978-1979);

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

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

К 2007-середине 2008 был готов прототип на C++.

Page 3: Data, Context and Interaction

Зачем?Повысить читаемость кода;

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

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

Page 4: Data, Context and Interaction

Составные частиDataсодержит только данные и методы, которые непосредственно к ним относятся (напр. валидация)

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

InteractionСодержит набор методов, с помощью которых осуществляется взаимодействие.

Page 5: Data, Context and Interaction

Let’s talk about Ruby

Page 6: Data, Context and Interaction

What about Python?HTTPS://GITHUB.COM/AMOLENAAR/ROLES

Page 7: Data, Context and Interaction

RailsRails — это MVC фреймворк (спасибо, Кэп!)

Поэтому работать приходится поверх MVC

Page 8: Data, Context and Interaction
Page 9: Data, Context and Interaction
Page 10: Data, Context and Interaction

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

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

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

Решаем некоторые классические ООП проблемы (Account#transfer)

Page 11: Data, Context and Interaction

МинусыНужно серьезно перестроить мозг

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

На выходе можно получить половинчатое решение

Page 12: Data, Context and Interaction

Problem?

Page 13: Data, Context and Interaction

Jim Gay http://youtu.be/lhFSc0dWstohttp://blog.firsthand.ca/2011/10/rails-is-not-your-application.htmlUncle Bob http://www.youtube.com/watch?v=WpkDN78P884