Size: a a a

Kotlin Community

2019 October 31

QH

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

Я делал экспериментальный флоу из suspend-функций и фрагментом. Собственно, экспериментальный он, потому что не сериализуемы.
источник

ЕР

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

QH

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

VP

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

ЕР

Евгений Ромашкан in Kotlin Community
Quantum Harmonizer
я к тому, что вполне может существовать вариант такой проверки в конструкторе объекта пользователя
Объект пользователя знающий про другие объекты пользователя как-то не очень
Ещё и умеющий в базу ходить получается
источник

VB

Viacheslav Blinov in Kotlin Community
ну например у вас длинная череда вопросов, реализуемых через цепочку активитей, результатом которых является выбор того или иного айтема, и смысл появляется только когда пройденно N шагов
источник

VB

Viacheslav Blinov in Kotlin Community
т.е. смысл что-то делать в результате есть только если вы собрали ответ на все шаги
источник

ЕР

Евгений Ромашкан in Kotlin Community
Vladimir Petrakovich
При выполнении операции берём и валидируем 🙂
Да, ты прав наверное, я такие проверки явно в коде выражаю, но можно ли их навесить на DTO интересный вопрос
источник

VB

Viacheslav Blinov in Kotlin Community
это можно сделать с сериализацией, колбеками и прочим, но выглядеть будет монструозно
источник

QH

Quantum Harmonizer in Kotlin Community
Viacheslav Blinov
т.е. смысл что-то делать в результате есть только если вы собрали ответ на все шаги
ага, каждый onActivityResult плюсует свои данные к полученным и делает setResult(); finish
источник

VB

Viacheslav Blinov in Kotlin Community
Quantum Harmonizer
ага, каждый onActivityResult плюсует свои данные к полученным и делает setResult(); finish
у нас каждый onActivityResult возвращает только свои данные, а комбинируются они уже на вызывавшей стороне
источник

QH

Quantum Harmonizer in Kotlin Community
Viacheslav Blinov
у нас каждый onActivityResult возвращает только свои данные, а комбинируются они уже на вызывавшей стороне
а где взять то, с чем их комбинировать?
Кстати, нам в @kotlin_mobile
источник

ЕР

Евгений Ромашкан in Kotlin Community
Vladimir Petrakovich
При выполнении операции берём и валидируем 🙂
Хотя есть ещё кейс - у меня в базе справочники лежат(ключ=> значение), и в DTO бывают значения по этому справочнику, их я валидирую на этапе валидации DTO, например.
Там они в любом контексте невалидны если не проходят по базе
источник

VB

Viacheslav Blinov in Kotlin Community
Quantum Harmonizer
а где взять то, с чем их комбинировать?
Кстати, нам в @kotlin_mobile
suspend askManyQuestion() {
  val firstResult = startActivityForResult(A::class)
  ...
  val lastResult = startActivityForResult(Z::class)
  doStuff(firstResult, ..., lastResult)
}
источник

VP

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

VP

Vladimir Petrakovich in Kotlin Community
Евгений Ромашкан
Хотя есть ещё кейс - у меня в базе справочники лежат(ключ=> значение), и в DTO бывают значения по этому справочнику, их я валидирую на этапе валидации DTO, например.
Там они в любом контексте невалидны если не проходят по базе
А если оттуда кто-то удалит один из используемых элементов после валидации?
источник

VP

Vladimir Petrakovich in Kotlin Community
В общем, с моей точки зрения такие проверки должны быть совсем в другом месте
источник

ЕР

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

ЕР

Евгений Ромашкан in Kotlin Community
У меня нет кейсов удаления из справочника)
источник

ЕР

Евгений Ромашкан in Kotlin Community
Сейчас флоу такой
Приходит запрос => мапится на DTO => валидируется, в т.ч. справочники которые иногда в базе => создаётся сущность и сохраняется
источник