Size: a a a

2021 August 23

SB

Sergei Baikin in symfony
В том то и  цель чтобы меньше держать. У вас при функциональном кохижене когнитивная нагрузка меньше ибо изоляция выше
источник

✨Basic_Instinct✨ in symfony
ну вон уже Arky пошел все связи резать ))
источник

SB

Sergei Baikin in symfony
Так я по прежнему против связей. Но я и не говорю везде объекты и агрегаты пихать.

Просто связи зло. Сразу минус реплики. Минус целостность данных.
источник

✨Basic_Instinct✨ in symfony
ну как же, если мы храним id связи, это не означает что её нет
источник

SB

Sergei Baikin in symfony
Ещё раз я про объекты и связь между ними.
Когда один объект использует другой для принятия решений. Тоесть когда один имеет доступ к другому
источник

SB

Sergei Baikin in symfony
Я вообще больше про GRASP.
Вполне понятная последовательна штука. Не знаю что вы против имеете. Я отсылал к видам кохижена. Даже не к каплингу(он же связи вроде как про которые я не писал но вы их увидели).
источник

✨Basic_Instinct✨ in symfony
я наверное имею против тогда, когда это переходит какой-то здравый смысл
источник

✨Basic_Instinct✨ in symfony
я прекрасно понимаю о чем вы говорите, и также придерживаюсь этой стратегии, но не параноидально везде и во всем
источник

✨Basic_Instinct✨ in symfony
каогда речь шла о том, как хранить id в сущности, со связью или отдельной связанной сущностью - wtf...
источник

✨Basic_Instinct✨ in symfony
из этого и следует вывод, что ваш путь всезде и всегда
источник

SB

Sergei Baikin in symfony
Окей как определить когда и где граница?
Просто 90% программистов не слышали про кохижн. И 99% лепят случайный или логический но не функцональный. Я уж молчу что используют классы но пишут процедурно исключительно.
источник

QQ

Qwert Qwertinsky in symfony
проиллюстрируйте примером пожалуйста
источник

SB

Sergei Baikin in symfony
Так это же идеальный показатель проблем в дизайне. И именно проблема с консистентностью данных. Я вот не разу не видел чтобы при таких связях кто то лочил все связанные записи. А значит решение принимается на устаревших потенциально данных и приводит к повреждениям данных.
Я вот и не понимаю зачем своими руками себе данные ломать.
источник

✨Basic_Instinct✨ in symfony
а тут не нужно их искать, она сама к тебе либо придет, либо из анализа бизнеса
источник

✨Basic_Instinct✨ in symfony
не совсем понимаю, каким образом мы ломаем себе данные? При работе с доктриной все связанные объекты автоматом в транзакции
источник

QQ

Qwert Qwertinsky in symfony
мне для понимания не хватает примера
источник

✨Basic_Instinct✨ in symfony
вот тоже одна из прелестей доктрины работая с объектом
источник

QQ

Qwert Qwertinsky in symfony
можно реальеый кейс на примере с 3-4 сущностями, с двумя вариантами : как не правильно - и почему, как правильно и какие это проблемы решило
источник

SB

Sergei Baikin in symfony
Например заказ. И связан с айтемами. Мы считаем общию цену и по ней принимаем решение.
Но в между тем когда мы прочитали цену и приняли решение цена изменилась. Тоесть мы приняли неверное решение. Или количество товара изменилось.
источник

SB

Sergei Baikin in symfony
Транзакция обеспечивает всё или ничего. Она не гарантирует что данные которые были в транзакции не менялись. Плюс транзакция не влияет на то что вы ПРОЧИТАЛИ и использовали для записи.
А то что вы ПРОЧИТАЛИ может уже быть другим сразу после чтения и перед тем как вы записали реакцию на изменившиеся данные
источник