Size: a a a

Software Design/Architecture/Zen

2021 June 10

В

Виктор in Software Design/Architecture/Zen
вы можете выбирать версию сабмодуля точно так же как версию пакета
источник

В

Виктор in Software Design/Architecture/Zen
по тегу или хешу комита или бренчу
источник

D

Danil in Software Design/Architecture/Zen
спасибо
источник

B

Bat in Software Design/Architecture/Zen
а могут ли сабмодули тянуть и локать зависимости того "общего" кода?
источник

В

Виктор in Software Design/Architecture/Zen
Сабмодули не подойдут для сложных вложенных зависимостей, рекурсивно это все собирать будет тяжело и будут конфликты
источник

В

Виктор in Software Design/Architecture/Zen
могут рекурсивно технически, но на практике будут проблемы
источник

В

Виктор in Software Design/Architecture/Zen
Скажем мы включаем в проект зависимость А и Б, обе они в свою очередь несут сабмодуль С, тогда при рекурсивном клоне репозитория, мы получил дубли кода С
источник

СМ

Сергей Моисеев... in Software Design/Architecture/Zen
Надо из нескольких проектов вынести общий код, самое простое что пришло в голову это вынести это в сабмодуль
источник

В

Виктор in Software Design/Architecture/Zen
Если нет серьезных блокеров заюзать пакетный менеджер, то наверное лучше заюзать его
источник

ST

Serguei Tarassov in Software Design/Architecture/Zen
Формат чата и проектирование плохо совместимы :) Форум куда более гуманный.
источник

МФ

Максим Федоров... in Software Design/Architecture/Zen
по действием что вы понимаете?
ошибка сохранения  агрегата, например — это за пределами агрегата
источник

МФ

Максим Федоров... in Software Design/Architecture/Zen
если ошибка внутри агрегата, то это просто не корректный инвариант, зачем было допускать ту логику, когда и так ясно, что ошибка будет
источник

D

Danil in Software Design/Architecture/Zen
Нет, именно бизнес логику.
Не обязательно  ошибка, может быть и ожидаемый результат.
Допустим выполнили действие, мне нужно вернуть результат и при этом изменить состояние процесса.
источник

МФ

Максим Федоров... in Software Design/Architecture/Zen
можете конкретнее? Не совсем понятно просто
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Есть два самостоятельных агрегата, например, A и B. У каждого свой репозиторий ARepository и BRepository.

По логике приложения при создании А всегда должен быть создан B. Если в процессе создания возникла какая-то ошибка, то оба НЕ должны быть созданы.

Нормально ли сделать в репозитории ARepository метод saveNewA(A $a, B $b), чтобы уже инфраструктура думала как сохранить в одной транзакции оба агрегата?
источник

AV

Alexey Vetrov in Software Design/Architecture/Zen
Вообще за запрос должен быть обработан один агрегат. Если два - это уже eventual consistency начинается
источник

AV

Alexey Vetrov in Software Design/Architecture/Zen
можете это страшное слово в поиске беседы ввести - уже ни раз обсуждалось это
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Первое же предложение: Только важно понимать что eventual consistency это достаточно сложно :)
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Технически на уровне инфраструктуры если это одна БД - я могу обернуть в одну транзакцию сохранение двух агрегатов. Но подозреваю, что это не очень хорошо...
источник

AV

Alexey Vetrov in Software Design/Architecture/Zen
Да, я еще не пробовал такое делать - поэтому не подскажу
источник