Size: a a a

Архитектура ИТ-решений

2020 June 11

PD

Phil Delgyado in Архитектура ИТ-решений
Тут и моя вина, мог бы при каком-нибудь рефакторинге предусмотреть )
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Тогда еще было гораздо проще хотя бы на фронте его убрать
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Roman Tsirulnikov
Я делал материал для внутреннего обучения сотрудников.
Архитекторы люди занятые, проще сразу отдать файл:
https://yadi.sk/i/pdkSVGxJ3bXscA
Из этого хорошая книжка получится
источник

RT

Roman Tsirulnikov in Архитектура ИТ-решений
у нас регулярно пытаются создать какой-нибудь обобщейнный type, архитекторы регулярно это запрещают)
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Кстати, а почему CRUD service - антипаттерн? В какой-нибудь луковице это вполне нормально.
Если на него не фронтенд смотрит, а какой-то сервис бинес-логики.
источник

RT

Roman Tsirulnikov in Архитектура ИТ-решений
Phil Delgyado
Кстати, а почему CRUD service - антипаттерн? В какой-нибудь луковице это вполне нормально.
Если на него не фронтенд смотрит, а какой-то сервис бинес-логики.
Нарушается принцип инкапсуляции, данные в сервисе, а логика домена где-то снаружи. Так сервис не контролирует свое поведение, а является лишь интерфейсом к БД.
Бизнес-логика множится по внешним сервисам.
источник

RT

Roman Tsirulnikov in Архитектура ИТ-решений
CRUD я имел в виду на уровне логики, а не формата API.  API пожалуйста делайте как CRUD если удобно, но логику держите внутри сервиса.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Ну, иногда и правильно, что множится, если сущность включена во много разных процессов.
Ну, например, "пользовательская история операций" - вполне себе EntityService...
источник

PD

Phil Delgyado in Архитектура ИТ-решений
И вполне логично, что логика формирования, как и логика более точного отображения - где-то снаружи. А внутри - просто эффективный cRud
источник

RT

Roman Tsirulnikov in Архитектура ИТ-решений
Сервис истории предоставляет внешним системам лишь чтение ленты операций, а не запись туда всего чего попало в любом порядке. Формирование событий ленты истории это вполне себе логика прикладных систем.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Ну, да, у сервиса два API - для R и для CUD )
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Но это все равно entity service
источник

RT

Roman Tsirulnikov in Архитектура ИТ-решений
Скажем операция совершается в некоем сервисе, прилетает как рассылка события по системе через Kafka, в том числе и в историю (и в другие системы тоже). При этом внешним системам сервис истории предоставляет только функцию чтения ленты истории.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Ну, получить событие из кафки - это тоже API и тоже в рамках CRUD.
Он же не умеет понимать 20 разных форматов этих событий и по каждому укладывать разное в историю, это была бы избыточная зависимость для него.
источник

RT

Roman Tsirulnikov in Архитектура ИТ-решений
Phil Delgyado
Ну, получить событие из кафки - это тоже API и тоже в рамках CRUD.
Он же не умеет понимать 20 разных форматов этих событий и по каждому укладывать разное в историю, это была бы избыточная зависимость для него.
обрати внимание что сервис истории читает события других сервисов, но функцию записи в историю не предоставляет
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Не вижу разницы. Может из кафки читать, а может другим давать записывать. Все равно желающий записать событие в историю - знает, что нужно послать.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Синхронное или асинхронное API, оркестрация или хореография - не важно в данном случае.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
(У нас как раз окрестрация и синхронное - так что именно предоставляет возможность записать)
источник

RT

Roman Tsirulnikov in Архитектура ИТ-решений
Разница есть при соблюдении правила что топики Кафки создаются как каналы рассыхки исходных событий по сервисам системы, а не как труба для наливки данных в конкретного получателя
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Ну, это если хореография )
источник