Size: a a a

Software Design/Architecture/Zen

2021 April 17

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
плохо декомпозированная вьюшка. повод порефачить
источник

SP

Sergey Protko in Software Design/Architecture/Zen
это не умножение, это факториал (пермутации же)
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
источник

SP

Sergey Protko in Software Design/Architecture/Zen
я тебе страшную штуку скажу - большинство систем проектируется так что тебе придется учитывать все пермутации. И почти всегда есть конфигурации. Просто тут оно хотя бы в одном файле изолировано и можно какие-то кейсы между собой отбросить и уменьшить количество этих пермутаций. Можно даже мутационными тестами закрыть
источник

SP

Sergey Protko in Software Design/Architecture/Zen
в этом смысл всех этих information hiding, contract testing, unit testing, etc - резать систему с целью уменьшить общее количество пермутаций. И это даже не везде имеет смысл делать.
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
факториал - если зависимые конфиги. А там большая часть независимые. Да и факториал тоже большое число, хоть и меньше экспоненты...
источник

SP

Sergey Protko in Software Design/Architecture/Zen
меньше экспоненты?)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ты ж ФП-ник
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ты должен чуть чуть математику знать
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну то есть, ты сравниваешь N^N или N!?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
короч, если там независимые штуки то вообще проблем не вижу
источник

SP

Sergey Protko in Software Design/Architecture/Zen
повторюсь - у тебя это один файлик и судя по всему его можно тестить изолировано даже, а значит нет проблем натравить мутантов
источник

SP

Sergey Protko in Software Design/Architecture/Zen
возможно просто команда ядра магенты слабенькая... или ты не понял их мотивации
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
да
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
ты уже несколько сообщений про тесты написал. На первой магенте из авто-тестов были только Е2Е (aka TAF - test automation framework), которые запускались только на SaaS версии (не на кор-фреймворке)... а про CI они вообще только со второй версии задумались
источник
2021 April 18

AN

Allan Nettzan in Software Design/Architecture/Zen
Привет.
Есть вопрос.
Тема Event Sourcing
Есть агрегат товара
В агрегате есть ссылка на коллекцию сущностей "Отзывы"
Пользователи пишут отзывы и тд...
Админ должен "потвердить отзыв"

Отзыв.Потвердить()

Агрегат дергает этот метод

Товар.ПотвердитьОтзыв(Отзыв_Id)
{
  CheckRule( ОтзывДолженБытьПрикрепленКТовару (отзыв_Id) )

emit ( ПотвердитьОтзывСОпределеннымIDEvent (отзыв_id) )
//  отзывы.find( отзыв_ID ).Потвердить()
}

Можно ли считать ОтзывДолженБытьПрикрепленКТовару - бизнес правилом?
источник

AN

Allan Nettzan in Software Design/Architecture/Zen
Конечно перед агрегатом запрос с данными пройдет множество слоев валидации.

Но сам же агрегат должен обеспечивать свою валидность
источник

SP

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

SP

Sergey Protko in Software Design/Architecture/Zen
в целом это вопросы ссылочной целостности а не вот эти true invariants за которые агрегаты должны отвечать
источник

SP

Sergey Protko in Software Design/Architecture/Zen
p.s. делать такие жирные агрегаты - получишь проблемы. особенно с event sourcing.
источник