Size: a a a

Kotlin Community

2020 February 24

RE

Roman Elizarov in Kotlin Community
А что во всех приложениях эти классы называются Left и Right?
источник

QH

Quantum Harmonizer in Kotlin Community
Alexander Nozik
Я думаю, что вопрос немного не в этом, а в стиле проектирования и конкретно в возврате упралвения при помощи Either.
Окей, шутки в сторону, я понимаю, что можно объявить domain-specific sealed-тип, но это менее гибко и менее явно.
источник

QH

Quantum Harmonizer in Kotlin Community
Roman Elizarov
А что во всех приложениях эти классы называются Left и Right?
Никогда не обращая внимания. Потому что map, fold и т. п.
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Кто мешает силед обязку делать при получении?
Если везде использовать разные sealed классы, к ним не получится сделать обобщённые методы. Не писать же их каждый раз заново.
источник

AO

Alexey Otts in Kotlin Community
Roman Elizarov
Сколько проектов написал... ниразу Either не понадобился. Что я делаю не так?
Валидация с накоплением ошибок хорошо ложится на either, ну или даже на ior
источник

AN

Alexander Nozik in Kotlin Community
Quantum Harmonizer
Окей, шутки в сторону, я понимаю, что можно объявить domain-specific sealed-тип, но это менее гибко и менее явно.
Ну нет. Другое дело, что приятно было бы иметь сокращенный синтаксис для сум типов. Было довольно симпатичное приложение то ли на форуме, то ли в кипах. Там идея в том, что используются те же силед классы, просто над ними упрощенный синтаксис
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Если везде использовать разные sealed классы, к ним не получится сделать обобщённые методы. Не писать же их каждый раз заново.
А это зачем?
источник

RE

Roman Elizarov in Kotlin Community
А зачем к ним обопщенные методы? Если мы в список напихали разных доменных типов то как и зачем с ними "обопщенно" работать? Можно пример?
источник

QH

Quantum Harmonizer in Kotlin Community
Roman Elizarov
А что во всех приложениях эти классы называются Left и Right?
Вообще, пытаясь написать свои jdbc-темплейты пришёл к тому, что либо всё позиционное, либо горы шаблонного кода ради именования
источник

QH

Quantum Harmonizer in Kotlin Community
Roman Elizarov
А зачем к ним обопщенные методы? Если мы в список напихали разных доменных типов то как и зачем с ними "обопщенно" работать? Можно пример?
EitherN.fold(func1, ..., funcN)
источник

AN

Alexander Nozik in Kotlin Community
Quantum Harmonizer
EitherN.fold(func1, ..., funcN)
Зачем эта страшная штука?
источник

AN

Alexander Nozik in Kotlin Community
Почему нельзя на экстеншенах сделать?
источник

QH

Quantum Harmonizer in Kotlin Community
Alexander Nozik
Зачем эта страшная штука?
Чтобы в месте использования суммы типов таки использовать её :)
источник

AO

Alexey Otts in Kotlin Community
Roman Elizarov
А зачем к ним обопщенные методы? Если мы в список напихали разных доменных типов то как и зачем с ними "обопщенно" работать? Можно пример?
Ну окей, допустим мы не хотим работать с исключениями в бизнес коде (это частая хотелка, так как эксепшен это всё таки что то системное). Нам для каждого метода придётся писать отдельные sealed для разных исходов. Потом нам надо выполнить подряд насколько разных действий, и тут мы приходим к тому что не можем наши разные sealed просто так компоновать
источник

AL

Alexander Levin in Kotlin Community
Alexander Nozik
Почему нельзя на экстеншенах сделать?
Можно конечно. Просто вопрос, что к каждой специфичной штуке придётся накидывать одни и те же экстеншны, получается.
источник

AN

Alexander Nozik in Kotlin Community
Quantum Harmonizer
Чтобы в месте использования суммы типов таки использовать её :)
Возвращаемся к вопросу проектирования. Хочу пример
источник

AO

Alexey Otts in Kotlin Community
Alexey Otts
Ну окей, допустим мы не хотим работать с исключениями в бизнес коде (это частая хотелка, так как эксепшен это всё таки что то системное). Нам для каждого метода придётся писать отдельные sealed для разных исходов. Потом нам надо выполнить подряд насколько разных действий, и тут мы приходим к тому что не можем наши разные sealed просто так компоновать
Но это не всё опять же не аргумент для тех кто пишет на эксепшенах
источник

AN

Alexander Nozik in Kotlin Community
Alexey Otts
Но это не всё опять же не аргумент для тех кто пишет на эксепшенах
Indeed, давайте не рассматривать кейс с возвратом управления.
источник

AO

Alexey Otts in Kotlin Community
Alexander Nozik
Indeed, давайте не рассматривать кейс с возвратом управления.
Ну здравствуйте, а давайте не рассматривать вообще ничего
источник

VP

Vladimir Petrakovich in Kotlin Community
Roman Elizarov
А зачем к ним обопщенные методы? Если мы в список напихали разных доменных типов то как и зачем с ними "обопщенно" работать? Можно пример?
Я не про разные типы в одном месте, а про методы, которые могут быть уместны для любого sealed класса, представляющего успешный результат или ошибку. Например подобие recover из Result.
источник