
Артур Евгеньевич
26.06.2017
11:11:49
Я откуда знаю)

Кирилл
26.06.2017
11:14:08
Не, дичь какая-то это ddd XD

Danil
26.06.2017
11:18:18
а где это написано, что по ddd нельзя service создавать?

Denis
26.06.2017
11:22:52
А смысл в сервисе как хранилище бизнес логики, если по ддд она должна храниться в VO и/или aggregate root?

Google

f4rt~
26.06.2017
11:23:50
а как же сервисный слой?:D

Denis
26.06.2017
11:26:04
Сервисный слой нужен не для хранения бизнес логики, а для предоставления API для внешних потребителей. Создавать сервис ради наличия этого самого слоя? Потому что так принято?
Всё опять сводится к тому, кто что под сервисом подразумевает. Привычные Anemic сервисы в ддд не принято использовать, и даже если и есть что то похожее, то это фасад для потребителей или anti corruption layer

Sergey
26.06.2017
11:46:55
это просто еще одни экторы, некоторые отвечают за инфраструктуру а некоторые за бизнес логику

Denis
26.06.2017
11:49:08
Бизнес правила? Ты имеешь ввиду классы вроде Specification, strategy и т.п.?

Sergey
26.06.2017
11:49:09
НО это не значит что ВСЯ логика должна быть в сервисах - большинство все же в сущностях
и у сущности мерчанта есть метод

Denis
26.06.2017
11:50:30
Calculator это не сервис))

Sergey
26.06.2017
11:50:43
дай свое определение сервиса

Denis
26.06.2017
11:50:54
Это полноценный объект с состоянием и поведением)

Google

Sergey
26.06.2017
11:51:09
сервис это объект с состоянием?
фу фу фу

Denis
26.06.2017
11:51:31

Sergey
26.06.2017
11:51:35
ну то есть иногда надо - но лучше делать их stateless
и нет никаких сервисов, сервисного слоя и т.д.
есть слой бизнес логики, есть слой инфраструктурный
и все

Sergey
26.06.2017
11:52:37
как его синхронизировать то?

Sergey
26.06.2017
11:53:07

Denis
26.06.2017
11:53:17
:)

Like
26.06.2017
11:53:29

Sergey
26.06.2017
11:53:35
Он вряд ли поймет
там со второго раза обычно доходит, но суть в том что прочитать всеравно надо хотя бы один раз
это книги из разряда "ты можешь это не юзать но ознакомиться обязан"

Like
26.06.2017
11:54:39
Ну если так, то согласен
Но люди ж разные бывают)
Вдруг он вообще ничерта не будет пониматьс с самого начала и сгорит?)
Он забросит книгу)

Артур Евгеньевич
26.06.2017
11:54:57
Смотритие, есть предмет (русский язык) есть класс конкретной программы (русский язык в мгу, 1 семестр 2017, у группы ис-17) также в базе хранятся лекци (номер лекции, дата число и время). Программа считается законченной когда щаканчивается последняя лекция. В каком классе должен быть метод isStudyProgrammFinished?

Sergey
26.06.2017
11:56:05
Это было определение калькулятора а не сервиса
повторю вопрос - чем калькулятор - не сервис? Допустим мы изолировали доступ в базу другим сервисом и юзаем его как зависимость. Допустим нам что бы посчитать лимит надо узнать сколько мы напродавали в прошлом месяце, еще какие-то свои конфиги почитать и спросить внешний сервис о реджектах транзакций. И на каждое это действие у нас есть инфраструтурные сервисы. Почему калькулятор, который регламентирует бизнес правила и считает дела не является сервисом?

Google

Denis
26.06.2017
11:56:07

Sergey
26.06.2017
11:56:38
и его юзает наш калькулятор

Denis
26.06.2017
11:57:09

Like
26.06.2017
11:57:20

Sergey
26.06.2017
11:57:23

Like
26.06.2017
11:57:24
Леккция ведь заканчивается

Denis
26.06.2017
11:57:30
Она должна содержать чистую логику

Sergey
26.06.2017
11:57:47
вопрос в том - почему ты считаешь что калькулятор, это не сервис

Кирилл
26.06.2017
11:58:02

Артур Евгеньевич
26.06.2017
11:58:02
Сейчас жто в кллассе курсСервис

Sergey
26.06.2017
11:58:28

Артур Евгеньевич
26.06.2017
11:58:38
В Который в свою очередь инджектится сервис лекций

Like
26.06.2017
11:58:41
Вон в сервисе лекций заканчивай )

Артур Евгеньевич
26.06.2017
11:58:55
Сущности эт только ентити

Google

Sergey
26.06.2017
11:59:23

Denis
26.06.2017
11:59:29

Артур Евгеньевич
26.06.2017
11:59:43
А не будет ли жирная дата модель?

Like
26.06.2017
11:59:53
Можешь разбить если хочешь
Инкапсуляцию забацай и все

Denis
26.06.2017
12:00:03
Зато не бледная)

Sergey
26.06.2017
12:00:06

Артур Евгеньевич
26.06.2017
12:00:08
Не в ддд)
Я знаю, но я не могу понять в какаие классы логику выносить если не в сервер

Like
26.06.2017
12:00:22
Вы все про ддд общаетесь?

Sergey
26.06.2017
12:00:25

Admin
ERROR: S client not available

Артур Евгеньевич
26.06.2017
12:00:34
Сейчас сервис прос т свалка методов для сущности по факу
Я хочу победить это

Denis
26.06.2017
12:01:05

Sergey
26.06.2017
12:01:13

Max
26.06.2017
12:01:32

Sergey
26.06.2017
12:01:39

Max
26.06.2017
12:01:40
аа все

Google

Like
26.06.2017
12:01:40
Что такое UB лучше скажите

Denis
26.06.2017
12:01:51

Sergey
26.06.2017
12:02:20
в целом DDD - он про единый язык. А все остальное легко покрывается GRASP и SOLID

Like
26.06.2017
12:03:17
Серега, ты вспомнил кто grasp замутил?)

Артур Евгеньевич
26.06.2017
12:03:20

Sergey
26.06.2017
12:03:29

Denis
26.06.2017
12:03:38
Например Address)

Sergey
26.06.2017
12:03:43

Max
26.06.2017
12:03:49

Артур Евгеньевич
26.06.2017
12:03:52
У меня будет lectionEntity lextionValueObject

Sergey
26.06.2017
12:04:01
Lection и LectionDuration например

Like
26.06.2017
12:04:27

Sergey
26.06.2017
12:04:33
первое сущность - конкретная лекция, второе - VO которое описывает длительность лекции например
ну то есть суффиксы - это рак

Max
26.06.2017
12:04:48

Sergey
26.06.2017
12:05:00

Like
26.06.2017
12:05:01

Артур Евгеньевич
26.06.2017
12:05:07

Sergey
26.06.2017
12:05:56
Вот я это и пытаюсь понять
пойди от обратного. Твои названия должны отражать что представляют объекты. А не их тип. Это детали которые никому не интересны. Точно так же структура директорий должна показывать что происходит а не из какого типа вещей состоит проект.

Sergey
26.06.2017
12:05:57

Артур Евгеньевич
26.06.2017
12:06:33