
Maksim
06.07.2018
12:17:53

Sergey
06.07.2018
12:18:17
ведь у тебя может быть один и тот же юзкейс (с этим понятием ты же знаком?), с которым можно работать из разных интерфейсов (http, rabbtimq, cli)
то есть в целом что нам надо - это некая система адаптеров над приложением. Что бы конвертировать действия юзеров в команды и запросы приложению.

Google

Sergey
06.07.2018
12:20:28
вообще - если тебе скучно - почитай что есть MVC на самом деле. Тот который в 1978-ом году придумали.
ты удивишься насколько оно отличается

Sergey
06.07.2018
12:23:08
уже читал
ну вот в том и дело, что домен и действие как то смешиваются

Sergey
06.07.2018
12:24:01

Sergey
06.07.2018
12:24:35
в моем понимании это та часть приложения которая подготавливает данные для вывода

Sergey
06.07.2018
12:25:08

Sergey
06.07.2018
12:25:12
нет
респондер выводит данные не домен

Sergey
06.07.2018
12:25:36
давай так, приведи мне самый простой пример "домена" который ты сможешь придумать. что бы маленький был

Sergey
06.07.2018
12:25:40
домен только готовит

Sergey
06.07.2018
12:25:44

Google

Sergey
06.07.2018
12:26:05
запись в БД?

Sergey
06.07.2018
12:26:11
бесполезно

Sergey
06.07.2018
12:26:16
естественно домен

Sergey
06.07.2018
12:26:20
ладно, давай в другой раз если тебе будет интересно но у тебя каша

Sergey
06.07.2018
12:26:45
в чем?

Sergey
06.07.2018
12:26:45
вот к чему приводит 30 лет промывания мозгов рекламами от Oracle что база данных это сердце вашего приложения

Maksim
06.07.2018
12:27:07

Sergey
06.07.2018
12:27:13
да.... скорее так

Sergey
06.07.2018
12:27:24
вот практика крудов да

Sergey
06.07.2018
12:27:36
в чем?
база данных неважна. важен стэйт. инварианты стэйта. Бизнес правила и т.д.
доменную модель можно в целом поделить на две части - модель для записи и модель для чтения.
ну и в целом даже нет смысла усложнять терминологию и мы можем просто говорить есть два аспекта - изменения стэйта приложения и получение его для вывода

Sergey
06.07.2018
12:29:21
ок в таких терминах изменение стейта - домен
вывод - респондер

Sergey
06.07.2018
12:29:41
в экшене или в домене?
или мы выделим отдельные сервисные сущности которые будут дергаться как-то по другому вообще и не будут входить в триаду ADR

Sergey
06.07.2018
12:30:22
вот это сложный вопрос, но логика говорит - домен
у меня есть подозрение, что сервисные сущности имеет смысл скармливать домену

Google

Sergey
06.07.2018
12:32:57
> Domain is an entry point to the domain logic forming the core of the application, modifying state and persistence as needed. This may be a Transaction Script, Service Layer, Application Service, or something similar.
> Responder is the presentation logic to build an HTTP response from the data it receives from the Action. It deals with status codes, headers and cookies, content, formatting and transformation, templates and views, and so on.
читаем определение и думаем "что такое transactional script", "application service" и т.д.

Artem
06.07.2018
12:33:35
/me конспектирует :D

Maksim
06.07.2018
12:34:08

Sergey
06.07.2018
12:34:17
скрипт естественно тут подразумевает в частности SQL

Sergey
06.07.2018
12:34:30

Sergey
06.07.2018
12:34:32
а сервис - соответственно обертка над SQL

Maksim
06.07.2018
12:34:36
забудь ты просто sql)

Sergey
06.07.2018
12:34:40

Maksim
06.07.2018
12:34:40
про nosql тоже)
транзакция - это не про субд, так-то

Sergey
06.07.2018
12:35:03
ну так то да

Artem
06.07.2018
12:35:11

Sergey
06.07.2018
12:35:48
ну так то да
https://martinfowler.com/eaaCatalog/transactionScript.html
https://www.bennadel.com/blog/2385-application-services-vs-infrastructure-services-vs-domain-services.htm

Sergey
06.07.2018
12:36:28
так...
оно как транзакции в SQL или я путаю?

Sergey
06.07.2018
12:36:53
сам термин

Google

Sergey
06.07.2018
12:36:59
что он означает?)

Maksim
06.07.2018
12:37:03
блядь. да забудь ты про ACID

Sergey
06.07.2018
12:37:08
последовательность действий

Sergey
06.07.2018
12:37:13
бизнес транзакция - что это?

Sergey
06.07.2018
12:37:48
это при отправке заказа проверить что товар есть на складе, если нет - откатываем транзакцию ит.д.

Sergey
06.07.2018
12:37:48
последовательность действий
правильно, то есть никаких SQL и т.д. - все это детали реализации. Транзакционный скрипт это типа хрень которая выполняет действия

Artem
06.07.2018
12:37:49

Maksim
06.07.2018
12:38:16

Sergey
06.07.2018
12:38:23

Admin
ERROR: S client not available

Sergey
06.07.2018
12:38:35

Artem
06.07.2018
12:38:54

Sergey
06.07.2018
12:38:57
это уже другой этап

Artem
06.07.2018
12:39:38
и на людей ещё вроде даёт, но там есть список литературы, да

Sergey
06.07.2018
12:40:06
это уже другой этап
давай по другому - какие еще есть варианты делать дела помимо transactional script?
вот есть логика в контроллера. следующий этап развития - transactional script, а за ним что следует?

Sergey
06.07.2018
12:40:28
сервисы собственно

Sergey
06.07.2018
12:40:33
ох
короч
секу

Google

Sergey
06.07.2018
12:40:51
https://www.youtube.com/watch?v=ajhqScWECMo
вот, ознакамливайся, тут вроде довольно просто описано

Artem
06.07.2018
12:41:06

Sergey
06.07.2018
12:41:20
явно быстрее чем прочитать PoEAA

Sergey
06.07.2018
12:41:23
так пойду посмотрю а то пока что до каши дошел

F01134H
06.07.2018
12:41:33
?

Sergey
06.07.2018
12:41:42
наряду с его рефакторингом
а не тратить время на маркетологов которые переименовывают вещи

Artem
06.07.2018
12:42:18
явно быстрее чем прочитать PoEAA
ну там ещё и про другие вещи есть. А вообще и то и другое надо. Чем больше источников, где чуть по-разному объясняют - тем лучше оседает

Sergey
06.07.2018
12:42:54
маркетологи не маркетологи
ADR и MVC почти одно и то же, с некоторыми нюансами

Sergey
06.07.2018
12:43:15
маркетологи не маркетологи
ну типа из нашей дискуссии вырисовывается что нет никакого профита от ADR в вопросах построения приложений

Sergey
06.07.2018
12:43:39
в основном пока только в вопросе организации кода профит есть

Sergey
06.07.2018
12:43:47

Sergey
06.07.2018
12:44:08
ну у меня как раз круд

Sergey
06.07.2018
12:45:29
есть еще веселое наблюдение - часто у людей круд просто потому что они так привыкли. И это просачивается в то как они проектируют UI. И проектируют по итогу они CRUD. что заставляет их так делать приложение. Порочный круг. И многие приложения по этой причине убогие

Sergey
06.07.2018
12:45:55
хм... а что не так с круд?
есть какой то пример, чтобы явно увидеть минусы?

Sergey
06.07.2018
12:48:27
https://kylecordes.com/2014/task-based-user-interfaces
https://www.quora.com/What-is-the-difference-between-task-based-user-interface-and-role-based-user-interface-when-designing-application

Artem
06.07.2018
12:49:15