Ayrat
хоспади, как все сложно в этой скале. даже жысон не попарсить.
Circe эта ссаная, требует постоянно какие-то енкодеры, декодеры блять для типов объявлять, капризная пиздец, из стрима не умеет читать, надо весь жсон в память выгружать, вместо нормального json-path какая-то оптика на макросах, пойду в проституки короче
Ayrat
Error:(85, 46) could not find implicit value for evidence parameter of type io.circe.Decoder[services.CastarResponse]
val response = decode[CastarResponse](jsonString).toTry
Диёр
а гсон или джэксон не юзаются со скалой?
Ayrat
Вот и ебись оно в сраку короче
Nikolay
Ayrat
Ayrat
Ayrat
Nikolay
Может как раз для полета на Луну?
Ayrat
не исключено.
Denis
Ayrat
Вот я короче изобразил из себя сегодня генерик декодер чтобы руками их не писать (вот еще в 2020 руками за либу писать эту ссанину), а она не может теперь понять какие имплиситы юзать - встроенные, или мои
То есть ты или берешь полуавтоматический вывод этих декодеров и какие-то свои добавляешь (не имплисит, а явно пропихиваешь), или полностью свои делаешь
Doge
хоспади, как все сложно в этой скале. даже жысон не попарсить.
Circe эта ссаная, требует постоянно какие-то енкодеры, декодеры блять для типов объявлять, капризная пиздец, из стрима не умеет читать, надо весь жсон в память выгружать, вместо нормального json-path какая-то оптика на макросах, пойду в проституки короче
Ну зато она ругается именно на этапе компиляции и кастомизируется элементарно.
Но да, она не для стриминга, хотя там вроде несколько бэкендов было под неё
TOV_MULTIMASSO
Ayrat
ну то есть мапер объявляется разок где-то в жебенях и дальше просто… парсишь?
Ayrat
ну как бы такой экспириенс и ожидается
Doge
Ayrat
короче, я пока не оценил всей этой темы с полуручным парсингом. Объявлять эти декодеры/енкодеры ручками я не очень хочу
Меня бы вполне устроил автовывод этих енкодеров киркой, который на макросах работает, но у меня есть группа фантомных типов на supertagged, для которых мой супер йоба имплисит конфликтует с кирковыми
Nikolay
Nikolay
Кстати в некоторых кейсах может быть и не помешало
Doge
Ayrat
Doge
о, а как?
https://docs.scala-lang.org/tutorials/FAQ/finding-implicits.html
Если есть коты под рукой, то можешь там посмотреть как обходить приоритеты в их реализациях тайпклассов
Doge
о, а как?
https://typelevel.org/cats/guidelines.html
Вот тут написано как в котах приоритеты выстраивают
Ayrat
Спасибо, прочитал. Не сказать что понял. Если сборка проекта зависит от фазы луны и приоритета имплиситов, куда-то не туда я свернул
Doge
Ayrat
Беда какая-то кругом
Ayrat
Пойду джексон заведу, он один хер транзитивно подтянулся, хоть без дела стоять не будет
всегда можно написать Try { parse } и получить на выходе Result
Ayrat
Hog
к программизму отношения не имеет :)
Doge
Беда какая-то кругом
Ну и то, и то - неудобства, вопрос что меньше нравится из этих вариантов.
Одерски выбрал один вариант, в хаскеле/расте другой
Ayrat
Ayrat
чтоблятьпроисходит
Hog
:))))
Hog
настроение хотел тебе поднять
Hog
а то ты чот зашиваешься
Hog
в волмарте своём
Sergey
TOV_MULTIMASSO
Происходит Волмарт
Ayrat
У меня на проекте просто есть джун, он скалист с энтузиазмом.
Мне босс сказал быть помягше с людьми, позволять им иметь свое мнение. Вот короче его мнение в том, что нам нужна вся эта поебота на проекте. Я пока что пытаюсь быть “помягше” и вместе с ним хаваю все эти страдания с имплиситами, но меня наверное минут через 5 заебет окончательно и я опять превращусь в toxic russian
Vladislav
Anatoly
Ayrat
Сейчас я в чате мягко спросил, а в чем киллер-фича кирки по сравнению с обычным джексоном
TOV_MULTIMASSO
Anatoly
Ayrat
Vladislav
Anatoly
(я знаю, потому что когда я спросил, почему дартисты юзают вот эту хуёвую медленную либу, а не нормальную, так это потому что "вриттен ин дарт, а не тупая обёртка над обтимизированным бинарём на сях")
Ayrat
то есть просто берем и парсим.
Ayrat
Ну, как это в 2020 принято
Ayrat
вот берем что угодно и десериализуем в тип. Большего от либы не надо. Если она заставляет тебя думать - плохая либа, негодная
Hog
Hog
я про "заставляет думать"
Hog
или мы только про парсинг?
Ayrat
Ой ну не. мне вот вечером думать как людей в фростпанке спасать, я на работу за деньгами хожу!
Ayrat
TOV_MULTIMASSO
да, вот это вот все
Я вот что скажу: в случае с хаскеллем, глобальной монадой приложения обычно является ReaderT BunchOfMutVars IO, или BunchOfMutVars -> IO a. Щас скалисты топят примерно за такую же архитектуру. И это при том, что хаскелльный оптимизатор за 25 лет научили эти трансформеры оптимизировать.
Главное, чтобы он фримонаду и какую-нибудь Codensity не притащил. В случае скалы - это пизда рулю
Hog
Hog
Ayrat
если б я каждый раз проекты начинал с обдумывания как добыть огонь, изобрести колесо, распарсить жсон - я б стал таким же старым как @grishace
Hog
TOV_MULTIMASSO
Щас ещё придумали "системы эффектов", но там внутри просто адовая хуйня на типах
Doge
Мое почему-то подробная хрень часто бывает нужна и её тут делать проще, чем на рефлексии
TOV_MULTIMASSO
https://alvinalexander.com/java/jwarehouse/scalaz-7.3/core/src/main/scala/scalaz/Codensity.scala.shtml
боже, ну и гадость эта ваша скала
Hog
Doge
Но я привычен к имплиситам, дышу ими, пью их, питаюсь ими
Doge
Hog
Denis
говорят вредно смотреть котов
Denis
после этого астронавтами становятся
Ayrat