Size: a a a

Scala User Group

2020 November 30

VS

Vladimir Sapronov in Scala User Group
Kirill Shelopugin
У тебя уже есть Play, так?
Да, и я думаю, может быть надо скатиться на Akka - ибо этот Play вроде бы не к селу
источник

VS

Vladimir Sapronov in Scala User Group
не вижу зачем он
источник

KS

Kirill Shelopugin in Scala User Group
Я плохо знаю Play, но мне всегда казалось, что там под капотом akka-http. Это не так?
источник

VS

Vladimir Sapronov in Scala User Group
Kirill Shelopugin
Я плохо знаю Play, но мне всегда казалось, что там под капотом akka-http. Это не так?
да
источник

KS

Kirill Shelopugin in Scala User Group
То есть у тебя уже в наличии есть akka-http. Можешь ли ты тогда просто её моделью воспользоваться, там же всё готово уже?
https://doc.akka.io/docs/akka-http/current/common/uri-model.html
источник

AS

Artem Sokolov in Scala User Group
Vladimir Sapronov
Да, я вижу. В итоге 2 варианта: тот что мне нравится убьет меня по перформансу ибо будет создавать новый декодер снова и снова.
чел. у тебя 1 алокация в худшем случае на фоне сотен других + IO (вероятно блокирующее) с сетью/БД
не говоря о том что алокации может и не быть тк нижележащая платформа соптимизирует в инлайн или скаляризацию
источник

λ

λoλegΥch in Scala User Group
чем скакать с одного стула на другой лучше уж сразу https://github.com/endpoints4s/endpoints4s
источник

GP

Grigory Pomadchin in Scala User Group
Vladimir Sapronov
парсить query params типизрованно, ну и обратно их устанавливать в строку тоже хорошо б
url.query[Int]("param1")

С поддержка кастомных кодеков, а лучше енумератум из коробки
источник

GP

Grigory Pomadchin in Scala User Group
сетить то точно можно
источник

GP

Grigory Pomadchin in Scala User Group
наверное и ретривить можно
источник

AS

Artem Sokolov in Scala User Group
Vladimir Sapronov
А может тогда такой вопрос: почему выглядит так, что Play хуже Akka?
Частенько так бывает, что примеры на Akka намного лучше, чем на Play.
Зачем вообще Play нужен?
можете привести пример примеров "на акка намного лучше чем на плей". меня больше интересует критерий "лучшести"
источник

VS

Vladimir Sapronov in Scala User Group
Artem Sokolov
чел. у тебя 1 алокация в худшем случае на фоне сотен других + IO (вероятно блокирующее) с сетью/БД
не говоря о том что алокации может и не быть тк нижележащая платформа соптимизирует в инлайн или скаляризацию
я просто не понимаю тогда, зачем circe так делает.
они же не просят другим там скажем case class'ам - будьте добры with CirceCaseClass
а тут вдруг для енамов это (форсить `with CirceStringEnum`)стало нормальным

и я уверен для enum в Scala 3 тоже не будут они ничего просить

не обосрались ли создатели  circe поддерживая enumeratum?
источник

λ

λoλegΥch in Scala User Group
чота ты намешал все в одну кучу
источник

λ

λoλegΥch in Scala User Group
кейс классы тоже должны иметь кодек в компаньоне
источник

VS

Vladimir Sapronov in Scala User Group
Kirill Shelopugin
То есть у тебя уже в наличии есть akka-http. Можешь ли ты тогда просто её моделью воспользоваться, там же всё готово уже?
https://doc.akka.io/docs/akka-http/current/common/uri-model.html
Возможно как-то могу, но то, что мне явно торчит - это play.api.mvc.Request
источник

VS

Vladimir Sapronov in Scala User Group
λoλegΥch
кейс классы тоже должны иметь кодек в компаньоне
Когда автоматическое (де)кодирование используешь, то ничего не надо делать вообще ни для одного из case class'ов - просто пишешь их как-будто нет сериализации, а она есть
источник

λ

λoλegΥch in Scala User Group
не надо использовать автоматическое декодирование
источник

М

Михаил in Scala User Group
Vladimir Sapronov
я просто не понимаю тогда, зачем circe так делает.
они же не просят другим там скажем case class'ам - будьте добры with CirceCaseClass
а тут вдруг для енамов это (форсить `with CirceStringEnum`)стало нормальным

и я уверен для enum в Scala 3 тоже не будут они ничего просить

не обосрались ли создатели  circe поддерживая enumeratum?
При чём тут создатели circe? Интеграция енумератум и кирки лежит в репозитории енумератума. По истории гита я там тоже Трэвиса Брауна не вижу
источник

AS

Artem Sokolov in Scala User Group
Kirill Shelopugin
А чем это плохо? Инстанс тайпкласса класть для discoverability в компаньон - стандартная практика. У тебя есть тип данных и сразу рядом с ним инстансы для него
я правильно понимаю что обсуждается примешивание трейта (который определяет сериализацию) в компаньен доменного объекта и/или дто объекта?

мне казалось тайпклассы как раз про то чтобы ты имел чистый доменный объект, и для него вокруг настраивал нужные функциональности, не работая с ним напрямую.

не то чтобы я сильно против примешивать в компаньен, но попахивает антипаттерном и вообще кейк паттерном каким-то
источник

λ

λoλegΥch in Scala User Group
Михаил
При чём тут создатели circe? Интеграция енумератум и кирки лежит в репозитории енумератума. По истории гита я там тоже Трэвиса Брауна не вижу
за тревиса и двор стреляю в упор?
источник