Size: a a a

Kotlin Community

2019 October 31

QH

Quantum Harmonizer in Kotlin Community
Евгений Ромашкан
Вот эту фразу "я достал этот username из базы, а там (внезапно!) уже есть такой" я распарсить не могу
Ты достаёшь пользователя из базы.
Считать ли его юзернейм невалидным из-за того что он уже есть в базе?
источник

ЕР

Евгений Ромашкан in Kotlin Community
Quantum Harmonizer
Ты достаёшь пользователя из базы.
Считать ли его юзернейм невалидным из-за того что он уже есть в базе?
Username валиден пока он только у одного юзера в базе
источник

ЕР

Евгений Ромашкан in Kotlin Community
А два юзера с одинаковым username быть не может, ограничение такое
источник

VP

Vladimir Petrakovich in Kotlin Community
Евгений Ромашкан
Вот эту фразу "я достал этот username из базы, а там (внезапно!) уже есть такой" я распарсить не могу
1. Вы навесили ограничение на DTO
2. У вас на руках при выполнении какой-то операции оказался этот DTO
3. Считается ли он невалидным всегда, если объект с таким же значением поля есть в БД?
источник

QH

Quantum Harmonizer in Kotlin Community
короче, о чём спор? Есть unique index, что ещё нужно?
источник

ЕР

Евгений Ромашкан in Kotlin Community
Quantum Harmonizer
короче, о чём спор? Есть unique index, что ещё нужно?
Нужно провалидировать, уникально ли поле
источник

ЕР

Евгений Ромашкан in Kotlin Community
К форме хочу вот валидацию прикрутить, налету
источник

ЕР

Евгений Ромашкан in Kotlin Community
Чтобы юзер знал правильно ли он заполнил username, чтобы всё не отваливалось после сабмита формы потому что unique constraint в бд
источник

VP

Vladimir Petrakovich in Kotlin Community
Евгений Ромашкан
К форме хочу вот валидацию прикрутить, налету
Так может это всё-таки валидация входных параметров при выполнении какой-то операции, а не свойство самого объекта?
источник

ЕР

Евгений Ромашкан in Kotlin Community
Vladimir Petrakovich
Так может это всё-таки валидация входных параметров при выполнении какой-то операции, а не свойство самого объекта?
А в DTO не входные параметры?
источник

VP

Vladimir Petrakovich in Kotlin Community
Я не понимаю, зачем такие вещи вообще привязывать к DTO, это тупые структуры
источник

VB

Viacheslav Blinov in Kotlin Community
Quantum Harmonizer
Во-первых, с андроидом всё понятно и очень печально. Попытка как-то это исправить — CompositeAndroid.
Во-вторых, пока Continuation не сериализуемы, startActivityForResult нельзя дожидаться в корутине, потому что процесс может быть пересоздан.
к сожалению CompositeAndroid тоже не решает эту проблему до конца... Согласен что проблема в основном в самом Android.
По поводу не сериализуемости Continuation - в этом подходе все равно теряется стек вызова, поэтому это обычно уже все равно и на пересоздании процесса эта часть стейта отбрасывается - идет возврат к предыдущему шагу
источник

ЕР

Евгений Ромашкан in Kotlin Community
Ну мол пришёл запрос -> смапили на DTO -> провалидировали DTO
источник

QH

Quantum Harmonizer in Kotlin Community
Vladimir Petrakovich
Я не понимаю, зачем такие вещи вообще привязывать к DTO, это тупые структуры
а кто сказал, что они обязаны быть тупыми?
источник

ЕР

Евгений Ромашкан in Kotlin Community
Vladimir Petrakovich
Я не понимаю, зачем такие вещи вообще привязывать к DTO, это тупые структуры
Она и будет тупой структурой, внешний валидатор её провалидирует
источник

VP

Vladimir Petrakovich in Kotlin Community
Евгений Ромашкан
А в DTO не входные параметры?
Да, но его валидность самого по себе и применительно к какой-то операции - это не одно и то же
источник

QH

Quantum Harmonizer in Kotlin Community
Viacheslav Blinov
к сожалению CompositeAndroid тоже не решает эту проблему до конца... Согласен что проблема в основном в самом Android.
По поводу не сериализуемости Continuation - в этом подходе все равно теряется стек вызова, поэтому это обычно уже все равно и на пересоздании процесса эта часть стейта отбрасывается - идет возврат к предыдущему шагу
тут стек и не нужен. Нужно помнить, какой код выполнять при onActivityResult, а при данном подходе это теряется.
источник

VP

Vladimir Petrakovich in Kotlin Community
Quantum Harmonizer
а кто сказал, что они обязаны быть тупыми?
Не хочу начинать холивар на тему "что такое DTO"
источник

VB

Viacheslav Blinov in Kotlin Community
Quantum Harmonizer
тут стек и не нужен. Нужно помнить, какой код выполнять при onActivityResult, а при данном подходе это теряется.
данный подход стали применять как раз изза необходимости стека, чтобы не делать stateful activity
источник

ЕР

Евгений Ромашкан in Kotlin Community
Vladimir Petrakovich
Да, но его валидность самого по себе и применительно к какой-то операции - это не одно и то же
А, вот ты о чём. Понял.
Ну он не валиден в контексте конкретной операции, да, конкретно при операции создания юзера, как провалидировать то?
источник