Size: a a a

2020 December 21

ПГ

Павел Г. in symfony
danil pavlusenko
Так а зачем тебе-то это, если у тебя нет rc?
"Короче это не по взрослому :)" - это не причина тащить, что-то в проект )
Ну так:
Затем, что код, построенный на констреинте работает быстрее и без возможности рейс кондишена. 
Проверять пользователя селектом - ебанина

Речь же не только про rc
источник

dp

danil pavlusenko in symfony
Павел Г.
Ну так:
Затем, что код, построенный на констреинте работает быстрее и без возможности рейс кондишена. 
Проверять пользователя селектом - ебанина

Речь же не только про rc
А про то, что он работает быстрее ещё  верно ?
Получается у тебя проблемы с перфомансом ?)
источник

ПГ

Павел Г. in symfony
Andrey Dembitskyi
Основной посыл в том, что предварительный select ничего не гарантирует -  на него нельзя полагатся.

Исходя из этого истекает, что есть разные пути:
1) делать предварительный select, но не опрадывать себя тем, что всё будет ок с реальной вставкой и получать constraint exception
2) быть на шаг впереди и искать причины и пути избежания таких ситуаций - на фронте заранее проверять потенциальный конфликт (можно сказать что это тот же "предварительный select", только теперь бекенду не обязательно отдавать удобную информацию об ошибке, если всё равно ситуация возникнет)
3) быть на два шага впереди - если уже пошла дублированная вставка - может это не такая и проблема и менеджеры смогут выгодно вручную разрулить ситуацию (бывает и такое) для всех
Спасибо за развернутость. Я предварительно описал примерно такое же, что мы проверяем select изначально а потом еще подкрепляем констрейтом. Но я понял посыл - что предварительный select вообще не делается.
источник

ПГ

Павел Г. in symfony
danil pavlusenko
А про то, что он работает быстрее ещё  верно ?
Получается у тебя проблемы с перфомансом ?)
У меня проблемы с пониманием, как делать правильно, современно и архитектурно, при этом без оверхэда.
источник

ПГ

Павел Г. in symfony
Я всегда делал предварительный select. Но это оказалось "ебанина" )
источник

ПГ

Павел Г. in symfony
Опять таки:
а ты как делаешь?) постоянно селектишь всё подряд перед тем, как 99% позитивный сценарий выполнить?

Это разве не намекает, что предварительный select неверно?
источник

dp

danil pavlusenko in symfony
Павел Г.
У меня проблемы с пониманием, как делать правильно, современно и архитектурно, при этом без оверхэда.
да что значит верно или неверно?
если это не решает никакую Твою проблему зачем тебе это нужно?
особенно в данное случае, когда у тебя в форме много разнородных полей сохраняется

просто представь, по-настоящему "взрослую" систему, там бы было такое?
ну чтобы у тебя регистрация пользователя происходила с заполнением сразу такого кол-ва полей
скорее всего она бы происходила этапами, верно же?
ну типа сначала телефон введите, потом еmail
потом инн/номер паспорта/снилс
вероятно при таком подходе, у тебя бы что-то да поменялось на беке :)

плюсом у тебя же наверняка, есть какая-то абстракция над хранилищем, что будет если ты его решишь подменить (не решишь :D) ?
ты подумал как ты будешь бросать этот ConstraintException ? (тебе кстати на этот вопрос уже отвечали )

вдобавок, для бизнеса, что важнее доступность или согласованность?
а это неравенство одинаково для каждого из полей (phone|email|inn)?
а что если доступность будет более важной, для какого-нибудь из них? (т.е. мы возьмём и дропнем констрейнт, или у нас его вообще не будет)
решение получается у тебя будет "неправильное" ?
получается ты не как "взрослый" будешь делать, а просто как программист, который послушал кого-то в чатике и затащил к себе решение в проект, не подумав предварительно ?

мне кажется в бОльшей степени именно это "неправильно"

смотри, ещё раз, я не умнее тебя и думаю, что знаю меньше чем ты
и уж точно меньше чем те, кто тебе отвечал
но я уверен в том, что лучше всего сначала хорошо подумать, прежде чем использовать что-либо
и ещё раз "Короче это не по взрослому :)" - это не причина, чтобы что-то когда-то тянуть к себе в проект
источник

dp

danil pavlusenko in symfony
ну а если просто абстрактных коней смотреть - то тебе по моему самое лучшее решение написал Валентин,
но зачем это тебе?
источник

ПГ

Павел Г. in symfony
danil pavlusenko
да что значит верно или неверно?
если это не решает никакую Твою проблему зачем тебе это нужно?
особенно в данное случае, когда у тебя в форме много разнородных полей сохраняется

просто представь, по-настоящему "взрослую" систему, там бы было такое?
ну чтобы у тебя регистрация пользователя происходила с заполнением сразу такого кол-ва полей
скорее всего она бы происходила этапами, верно же?
ну типа сначала телефон введите, потом еmail
потом инн/номер паспорта/снилс
вероятно при таком подходе, у тебя бы что-то да поменялось на беке :)

плюсом у тебя же наверняка, есть какая-то абстракция над хранилищем, что будет если ты его решишь подменить (не решишь :D) ?
ты подумал как ты будешь бросать этот ConstraintException ? (тебе кстати на этот вопрос уже отвечали )

вдобавок, для бизнеса, что важнее доступность или согласованность?
а это неравенство одинаково для каждого из полей (phone|email|inn)?
а что если доступность будет более важной, для какого-нибудь из них? (т.е. мы возьмём и дропнем констрейнт, или у нас его вообще не будет)
решение получается у тебя будет "неправильное" ?
получается ты не как "взрослый" будешь делать, а просто как программист, который послушал кого-то в чатике и затащил к себе решение в проект, не подумав предварительно ?

мне кажется в бОльшей степени именно это "неправильно"

смотри, ещё раз, я не умнее тебя и думаю, что знаю меньше чем ты
и уж точно меньше чем те, кто тебе отвечал
но я уверен в том, что лучше всего сначала хорошо подумать, прежде чем использовать что-либо
и ещё раз "Короче это не по взрослому :)" - это не причина, чтобы что-то когда-то тянуть к себе в проект
Спасибо :)
я не тащу в проект, я хочу понять иной способ, который говорят более верный.
1) Если несколько этапов, то опять таки этапы могут быть и на фронте а идти потом скопом. Но даже если не так, прерывание одного из этапов, должно будет дропнуть со временем предыдущий. Т.е. свои заморочки.
2) Да, абстракция над хранилищем, значит эти экзепшены должны генериться внутри. Но блин, у нас тот же флаш то общий. Значит надо вообще от флаша избавляться и сувать его отдельно в каждый репо и чтобы флашило внутри каждого репозитория? В принципе это логично, почему у нас вообще общий флаш над несколькими репо - не понятно)
3) Удалили констрейт и все накрылочь - тоже верно. Даже был такой кейс когда немного поменялись требования, но предварительный select осталься, правда с условиями.
источник

ПГ

Павел Г. in symfony
danil pavlusenko
ну а если просто абстрактных коней смотреть - то тебе по моему самое лучшее решение написал Валентин,
но зачем это тебе?
Научиться и понять :)
источник

P

Pavel in symfony
Привет, возможно, кто подскажет, как можно сделать вычисление одних полей на основе других, ну чтобы динамический был. К примеру
{
"a": 2,
"b": 3,
res: "{a}+ {b}",
"arrayData": [1,2,3],
"randomEl" : "rand(arrayData)"
}
источник

👤U

👤 User in symfony
Вы чатом не ошиблись?
источник

MV

Moz Vkusni in symfony
Павел Г.
Ну а по поводу актуальности и нужности. Клиент говорит "я хочу чтобы для вот этих ошибок было понятный ответ, а не неверные данные, кто то зарегался под его емейлом или  использовал его ИНН и что именно из этого". Вполне нормальное желание.
с точки зрения секурности такой понятный ответ - такое себе.
источник

A

Anthony in symfony
Pavel
Привет, возможно, кто подскажет, как можно сделать вычисление одних полей на основе других, ну чтобы динамический был. К примеру
{
"a": 2,
"b": 3,
res: "{a}+ {b}",
"arrayData": [1,2,3],
"randomEl" : "rand(arrayData)"
}
никак
источник

ПГ

Павел Г. in symfony
Moz Vkusni
с точки зрения секурности такой понятный ответ - такое себе.
Согласен. Но на двух стульях не усидишь: и дать данные, и скрыть данные )
источник

D

Dmitry in symfony
Moz Vkusni
с точки зрения секурности такой понятный ответ - такое себе.
а что в этом плохого ? что вам базу типов ошибок спарсят ? или какие инн в базе уже есть ? так это можно сделать даже при ответе 400 без текста ошибки.
источник

MV

Moz Vkusni in symfony
Dmitry
а что в этом плохого ? что вам базу типов ошибок спарсят ? или какие инн в базе уже есть ? так это можно сделать даже при ответе 400 без текста ошибки.
берешь слитую бд мэйл:пасс, пытаешься зарегать по этим мылам юзеров, соответственно получаешь какой-то срез зареганных в этой системе мейлов, - пытаешься применить паролли из этой слитой базы, либо брутишь. вуаля
источник

D

Dmitry in symfony
Moz Vkusni
берешь слитую бд мэйл:пасс, пытаешься зарегать по этим мылам юзеров, соответственно получаешь какой-то срез зареганных в этой системе мейлов, - пытаешься применить паролли из этой слитой базы, либо брутишь. вуаля
да я вам так могу сделать даже без слитой базы :) тупым брутом
источник

MV

Moz Vkusni in symfony
Dmitry
да я вам так могу сделать даже без слитой базы :) тупым брутом
я толькот пример привел
источник

D

Dmitry in symfony
так и я вам пример привел. однообразная ошибка никак не защищает от брута
источник