Данные, контекст, взаимодействия (DCI) DCI был изобретен профессором Трюгве Реенскаугом для решения конкретной проблемы в ОО-коде; очень сложно прочитать ОО-код для конкретного варианта использования, поскольку он часто распространяется на множество различных классов, и поток управления между методами этих классов зависит от того, какие объекты созданы для каких переменных. С помощью DCI Реенскауг предложил новый способ кодирования для вариантов использования, где каждый сценарий использования реализован как
3 ответа

Рубиновый приоритет методов в объектах, расширенных несколькими модулями

Учитывая следующее: class User; attr_accessor :roles; end module RegisteredUser def default_context Submission end end module Admin def default_context Review end end current_user = User.new current_user.roles = ["registered_user", "admin"] current_…
30 ноя '11 в 15:54
2 ответа

Как объединить DDD(доменно-управляемый дизайн) DCI для разработки приложения

DDD - это доменно-управляемый дизайн, это методология, которая включает в себя вездесущий язык, корневой объект, объект значения и агрегаты. DCI: данные, контекст, взаимодействия - это парадигма программирования, изобретенная Трюгве Реенскаугом. как…
21 окт '11 в 23:57
2 ответа

Для чего нужен Thread.current в примере DCI в Ruby?

Что такое Thread.current в этом коде? Я смотрю на этот пример использования DCI в приложении Rails. В lib/context.rb есть это: module Context include ContextAccessor def context=(ctx) Thread.current[:context] = ctx end def in_context old_context = s…
02 сен '15 в 07:31
5 ответов

Расширение собственного рубинового класса для загрузки CarrierWave

Обновление : я упростил свой вопрос; Вы можете увидеть полную историю, проверив мои правки редактирования. Спасибо iain и BernardK за то, что они так далеко BernardK. Я хочу загрузить функциональность carrierwave в экземпляр моего User < ActiveRe…
1 ответ

DCI, должна ли роль добавлять свойства к объектам данных?

Я играл с DCI после того, как последовал вместе с "Правильным путем для кодирования DCI" в Ruby. Я обнаружил, что все время хочу, чтобы мои роли добавляли свойства в мои объекты данных. Например, если у меня есть объект пользователя. class User def …
13 июл '12 в 01:23
1 ответ

Хорошо, чтобы иметь несвязанные роли в контексте DCI?

Я работаю над контекстом CreditCardPayment и обнаружил, что не все роли необходимы для некоторых методов контекста. Например, метод CreateSecurityHash может потребоваться все роли, но VerifyHash требуется только один. Можно ли не связывать все роли?…
22 дек '12 в 17:30
3 ответа

Может ли Scala ограничить граф объектов, чтобы были видны только те объекты, которые имеют отношение к контексту?

Есть ли способ использовать систему типов Scala для краткого указания контекстно-значимого подграфа полного графа объектов? DCI утверждает, что у вас часто есть довольно сложный граф объектов, но в любом случае вы часто хотите работать только с подг…
23 фев '12 в 01:39
4 ответа

Что такое DCI и как он может сочетаться с Rails?

Недавние дебаты с коллегой о различных подходах к проектированию и кодированию моделей в приложении Rails привели меня через DCI в контексте Rails. Тем не менее, я просто не могу обернуть голову вокруг всей этой концепции, даже после просмотра этого…
3 ответа

Как понять паттерн DCI

Согласно Wikipedia Data, контекст и взаимодействие (DCI) - это парадигма, используемая в компьютерном программном обеспечении для программирования систем взаимодействия объектов. Здесь мне не ясно о проблеме, которую DCI пытается решить. Можете ли в…
24 июл '17 в 10:32
2 ответа

Каковы возможные проекты для архитектуры DCI?

Каковы возможные варианты реализации архитектуры DCI (данных, контекстов, взаимодействий) на разных языках ООП? Я думал о разработке на основе политик (Андрей Александреску) для C++, DI и AOP для Java. Тем не менее, я также подумал об использовании …
05 апр '10 в 13:14
1 ответ

Архитектура для вождения комплекса Варианты использования

Я собираюсь разработать программное обеспечение, которое будет реализовано несколькими разработчиками. Программное обеспечение имеет много сложных вариантов использования, включающих несколько шагов и команд из пользовательского интерфейса. Я хочу и…
29 ноя '12 в 19:31
6 ответов

Примеры архитектуры DCI?

Я пытался понять архитектуру DCI, читая бережливую архитектуру программного обеспечения. Я чувствую, что мне нужно увидеть еще несколько примеров, чтобы кристаллизовать мое понимание этого, но я смог найти только те, которые являются вариантами пере…
07 окт '10 в 06:58
8 ответов

Где разместить модель данных и поведения? [TL; др; Использовать услуги]

Я работаю с AngularJS для моего последнего проекта. В документации и руководствах все данные модели помещаются в область действия контроллера. Я понимаю, что это должно быть там, чтобы быть доступным для контроллера и, следовательно, в соответствующ…
1 ответ

DCI, проблемы с понятием "контекст" и какие роли внутри знают друг о друге

Я могу просто упустить ключевую концепцию здесь. Я понимаю "тупые" объекты данных. Я также понимаю, что роли - это наборы методов без сохранения состояния, применяемые к тупому объекту, когда он выполняет эту роль. Я также понимаю, что контекст соби…
04 авг '11 в 05:13
0 ответов

Пример DCI на Java

Я ищу несколько примеров на Java, чтобы лучше понять, что такое DCI и как его следует использовать. Я нашел отличный пример DCI на C++ здесь http://fulloo.info/Examples/C++Examples/Account1/ Если вы не знакомы с архитектурой DCI, прочитайте об этом …
14 сен '12 в 10:47
1 ответ

Как обрабатывать исключения в DCI

Представьте, что у вас есть контекст, который обрабатывает денежные переводы между учетными записями пользователей. class Account < ActiveRecord::Base belongs_to :user end class MoneySender < SimpleDelegator class NotEnoughBalanceError < St…
08 июн '13 в 21:01
1 ответ

Где поставить валидации при следовании дизайну DCI?

Я следую DCI, чтобы структурировать поведение нового приложения на Rails, но у меня есть некоторые сомнения относительно того, куда поместить валидации. Традиционно, если вы собираетесь управлять своими данными с использованием моделей ActiveRecord,…
13 окт '12 в 18:48
1 ответ

Что такое "чисто объектно-ориентированный язык" в контексте DCI?

В обсуждениях DCI обычно упоминаются чисто объектно-ориентированные языки: Объектно-ориентированные языки программирования, особенно "чистые", выражали все в терминах объектов или методов объектов. (Конечно, большинство языков программирования испол…
17 дек '13 в 07:07
5 ответов

DCI - данные, контекст и взаимодействие - преемник MVC?

Как лучше всего описать данные, контекст и взаимодействие (DCI), чтобы передать его организации? Он создан Trygve Reenskaug, создателем MVC-паттерна. Это действительно преемник MVC или просто другая модель? И каковы его плюсы и минусы?
18 дек '08 в 17:48
1 ответ

Контекст DCI в веб-приложении

Я думаю, как и когда контекст DCI может быть использован в веб-приложении. Я рассматриваю этот вариант использования высокого уровня: Пользователь вводит город, прибытие, отъезд, тип номера и нажимает кнопку "Поиск". Система отображает список отелей…
23 окт '12 в 13:22