Size: a a a

2020 October 05

ПГ

Павел Г. in symfony
Максим Федоров
строишь приложение с подходом "приложение = чистая функция"? 🙂
Мне кажется так тестироватьпроще будет. В так выходит юзкейс с 10 зависомотями, и все надо мокать
источник

ПГ

Павел Г. in symfony
Пока только пробую...
источник

VS

Vlad Sobenko in symfony
Павел Г.
у меня сущность "услуга"
У нее свои мелкие свойства, а потом пошли связи:  владелец, тип(категория), город, соц сети, ссылки на ютуб, галерея фото. Коллекции хранятся в "услуге". Я бы срадостью вынес коллекции но не понимаю, как тогда работать с коллекцией вне агрегата, так как есть всякие штуки типа "нельзя 2 ссылки на одну соц сеть", "должна быть минимум одна картинка". Можно вынести в какой нить сервис класс - но тогда надо плотно работать с репозиторием будет и не потестировать без него.
Ну это стандартная дичь. У меня так же)
Агрегат - про транзакцию(юз кейс).
Как связано это всё в юз кейс? Догадываюсь, что через ui.
источник

DT

Dmitriy Tkachenko in symfony
то что ты загружаешь все данные для агрегата из репов - ты восстанавливаешь его состояние, и ничего более
источник

DT

Dmitriy Tkachenko in symfony
ты можешь с таким же успехом его держать в памяти бесконечно, и тебе не придется с репами вообще возиться
источник

DT

Dmitriy Tkachenko in symfony
только это никак не связанно с самим агрегатом и данными, с которыми он работает
источник

ПГ

Павел Г. in symfony
Dmitriy Tkachenko
то что ты загружаешь все данные для агрегата из репов - ты восстанавливаешь его состояние, и ничего более
Ну я к чему: у меня например сейчас $agr->addSocial(string $link), а это будет какой то сервис $socialService->addSocial(srtring $link)
источник

VS

Vlad Sobenko in symfony
Павел Г.
у меня сущность "услуга"
У нее свои мелкие свойства, а потом пошли связи:  владелец, тип(категория), город, соц сети, ссылки на ютуб, галерея фото. Коллекции хранятся в "услуге". Я бы срадостью вынес коллекции но не понимаю, как тогда работать с коллекцией вне агрегата, так как есть всякие штуки типа "нельзя 2 ссылки на одну соц сеть", "должна быть минимум одна картинка". Можно вынести в какой нить сервис класс - но тогда надо плотно работать с репозиторием будет и не потестировать без него.
С таким подходом можно пол базы засунуть в агрегат.
источник

ПГ

Павел Г. in symfony
Vlad Sobenko
С таким подходом можно пол базы засунуть в агрегат.
Ну это типо "профиль", вроде как один контекст
источник

VS

Vlad Sobenko in symfony
Павел Г.
Ну это типо "профиль", вроде как один контекст
Как услуга завязана с картинкой? Или соц сетью?
источник

ПГ

Павел Г. in symfony
Vlad Sobenko
Как услуга завязана с картинкой? Или соц сетью?
Ну это профиль.  Профиль обязан иметь изображение.  Соц сети чисто инфа, без логики входа.
источник

DT

Dmitriy Tkachenko in symfony
ты перепридумываешь CRUD?
источник

VS

Vlad Sobenko in symfony
Павел Г.
Ну это профиль.  Профиль обязан иметь изображение.  Соц сети чисто инфа, без логики входа.
Так делай круд, если без логики и инвариантов
источник

ПГ

Павел Г. in symfony
Dmitriy Tkachenko
ты перепридумываешь CRUD?
Да)
источник

ПГ

Павел Г. in symfony
Ну круд то надо оттестировать
источник

ПГ

Павел Г. in symfony
Логика есть, но ее мало
источник

DT

Dmitriy Tkachenko in symfony
зачем круд тестировать?
источник

VS

Vlad Sobenko in symfony
Павел Г.
Логика есть, но ее мало
Так отдели части с логикой в агрегаты. Без - оставь круд
источник

ПГ

Павел Г. in symfony
Dmitriy Tkachenko
зачем круд тестировать?
Ну тут скорее обратная логика: если тесты пишутся хорошо, значит код норм, если нет - значит и код плохой. Я смотрю как будут тесты выглядеть.
источник

DT

Dmitriy Tkachenko in symfony
Павел Г.
Ну тут скорее обратная логика: если тесты пишутся хорошо, значит код норм, если нет - значит и код плохой. Я смотрю как будут тесты выглядеть.
нет, тут прямая логика. Не надо тестировать то, что не надо тестировать. И проблема сложности написания тестов решается сама собой
источник