jvmchat | Unsorted

Telegram-канал jvmchat - pro.jvm

5916

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез

Subscribe to a channel

pro.jvm

все остальное твое должно быть

Читать полностью…

pro.jvm

А в логах останется все что нужно для анализа

Читать полностью…

pro.jvm

А на все "не получилось оформить заказ" ты пользаку пишешь"чет не то, попробуйте позже"

Читать полностью…

pro.jvm

а если ни A ни B не знают как обработать ошибку из C?

Читать полностью…

pro.jvm

кстати, я обмазался .fetchInto(FooEntity::class.java) и убрал все !! из кода

Читать полностью…

pro.jvm

Да, но A это завернет в ошибки B, а B в ошибки C и так далее. И на уровне A тебе надо знать только об ошибках B, а не о непонятных RuntimeException хз откуда

Читать полностью…

pro.jvm

не, я ж говорю, там про композицию


я про случай когда есть A.foo(), B.bar(), C.do()

foo() вызывает bar(), а тот вызывает do()

есть контроллер, который вызывает A.foo() - Either с ошибкой будет прокидываться из C.do() в контроллер по цепочке в го стиле?)

Читать полностью…

pro.jvm

при этом джава генератор для котлина как земля

Читать полностью…

pro.jvm

у меня в базе ненулевые атрибуты

Читать полностью…

pro.jvm

надо под лупой такой подход изучить

Читать полностью…

pro.jvm

по сути мы получаем замену исключениям

Читать полностью…

pro.jvm

Я пока только проникся идеей, ещё не в проде, так что не особо

Читать полностью…

pro.jvm

суть то одна просто сахара меньше и поддержки на уровне языка нет

Читать полностью…

pro.jvm

любой линтер расчехляет молоток при виде !!

Читать полностью…

pro.jvm

боилерплейта нету так как есть Raise

Читать полностью…

pro.jvm

не надо жуковскиие классы юзать

Читать полностью…

pro.jvm

а еще жук для котлин умеет генерить data классы с правильной nullability и тогда без проблем работает .fetch(mapper())

Читать полностью…

pro.jvm

При обычных exception у тебя контроллер может получить ошибку репозитория что бд не доступна и должен на это что-то пользователю сказать. Тут он получит абстрактное "не удалось оформить заказ" от сервиса заказов

Читать полностью…

pro.jvm

Records.mapping предпочитаю

Читать полностью…

pro.jvm

Если я правильно понял вопрос.

fun foo(n: Int): Either<Error, String> = either {
val s = f(n).bind()
val t = g(s).bind()
t.summarize()
}

В доке же написано что Either прокидываются через .bind().
.bind конкретно в случае Either в котлин arrow-kt либы - это аналог "?" в расте для боилерплейт фри ерор пропагейтинг для Result
насколько я понял.

.bind здесь приходит из скоупа.
Очень похоже на то как в корутинах CoroutineScope.
Только тут конечно же скоуп другого типа

Читать полностью…

pro.jvm

Верим, надеемся, ждём

Читать полностью…

pro.jvm

Вроде жука же должны были пофиксить, что ты not null генерил нормально

Читать полностью…

pro.jvm

это сам Лукас Эдер посоветовал

Читать полностью…

pro.jvm

его так и не дочинили

Читать полностью…

pro.jvm

nullable аннотации в помощь, если проект не полностью на котлин

Читать полностью…

pro.jvm

raise сразу контейнер вернет

Читать полностью…

pro.jvm

это нечто левое к вопросу. беглый взгляд показал что там идет комбинирование результатов

Читать полностью…

pro.jvm

как и на get() опшнла

Читать полностью…

pro.jvm

https://arrow-kt.io/learn/typed-errors/from-either-to-raise/
Это похоже на ерор пропагейшн как в расте.
Чтоб небыло боилерплейта.
Это шаг дальше от Either к боилерплейт фри ерор пропагейшн как в расте через "?".
Я в проде не пробовал

Читать полностью…

pro.jvm

аналогичный вопрос

как такое чэйнить и по сути рвать цепочку

Читать полностью…
Subscribe to a channel