Size: a a a

Software Design/Architecture/Zen

2021 June 13

СП

Сергей Предводителев... in Software Design/Architecture/Zen
источник

SF

Segmentation Fault in Software Design/Architecture/Zen
А почему у него интерфейс репозиторий лежит в домене (model), а используется в app (BookingService)?
источник

SF

Segmentation Fault in Software Design/Architecture/Zen
Честно говоря не очень понял вопрос. Скорее это должно быть на app.
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
интерфейс менеджера транзакции в application и там же используется
источник

ST

Serguei Tarassov in Software Design/Architecture/Zen
Интерфейс транзакшн-менеджера и усё? А где интерфейс клиента? Как предполагается реализовывать распределенную транзакцию?
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Тут подразумевается нераспределеная транзакция, если я правильно понял
источник

ST

Serguei Tarassov in Software Design/Architecture/Zen
Нераспределенная транзакция, это когда клиент управляет транзакцией в одном соединении с сервером. Если в двух и более - транзакция распределенная.
источник

ДП

Дмитрий Протасов... in Software Design/Architecture/Zen
Немного не в тему, возможно холиварно, но всё же. Как же относятся к CQS, вот допускаю очевидную ошибку - несоответствие типов, или что то еще?:
interface AwesomeWork {
   pub fun workForFortyHourInWeekAndHaveNoNothing(): void;
   pub fun getReward(): tinyint;
}

interface HarshReality {
   pub fun sendKindsToSchool(smallint $greatTwoOrEqueal): void;
   pub fun useAllYouStrenghToMakeMoney(int256 $hoursInWeek): void;
   pub fun getRewardForGoodGuy(): tinyint;
}

interface MyLife {
  pub fun myfreeHours(smallint $freeHours): void;
  pub fun myWorthlessHours(int256 $badHours): void;
  pub fun getMeaningOfLife(): int; # not 42!!
}
источник
2021 June 14

SP

Sergey Protko in Software Design/Architecture/Zen
Нет плохих или неплохих подходов.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
У этого подхода есть только один недостаток - можно попасть в ситуацию с длинными транзакциями (мол сначала с одним чёт сделаем но ещё не коммитим а потом со вторым). Так же важно понимать по каким причинам будут фэйлится транзакции и т.д.

А так это базовый вариант, он прост в реализации но достаточно "влоб".
источник

ДП

Дмитрий Протасов... in Software Design/Architecture/Zen
Вот вот, тут сразу саги всплывают, вот и не пойму как правильно для бизнеса это исполнить. Например для обмена на бирже, ты сразу бы передал ExchangeId, а потом по нему спрашивать состояние, но не всегда же бывает такое. Например говорит твоя - устрой мне coolDayOfVulgar($somewhere): $anybody
Вот и понимаешь, что каждый паттерн, в своей ситуации работает.
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Меня смущает, что знания о транзакциях перешли на application-уровень и позволяют обернуть в транзакции, что угодно...
источник

ДП

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

SP

Sergey Protko in Software Design/Architecture/Zen
А на каком уровне ты хочешь транзакциями рулить?
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
в инфраструктуре
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Это про реализацию. А какой уровень знает где границы операций
источник

RL

Romka Los in Software Design/Architecture/Zen
Cross cutting concerns? Ни?
источник

V

Viktor in Software Design/Architecture/Zen
Меня тут больше интересовал бы вопрос: "А как это все откатывать?"
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Rollback и все, потому это и удобно.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Ни.
источник