
Vladislav
27.09.2016
17:28:02
причем с простым таким
я уже описал, отрывается поле, у внешнего апи теперь его нет
твоя скала его сама сгенерит и значение засунет любое? не смеши

Google

Vladislav
27.09.2016
17:28:48
или ты считаешь что груви это сделает?
да лааадно
риали?
смешно смешно

Lev
27.09.2016
17:29:46
Ну не надо так агриться, мы же не виноваты, что в жс хуже

Юрий
27.09.2016
17:30:08
Речь о том, что когда ты парсишь json в строгую структуру, у тебя ошибка вылетит на этапе разбора json и можно будет понять, что именно прошло не так. Если парсить json в нетипизированный ast, с чем тоже у скалы нет проблем, то тебе потом придется либо руками писать валидацию этого аст, либо у тебя вылетит где-то рантайм ошибка при обращении к полю, которого в аст нет

Vladislav
27.09.2016
17:30:16
в js с json кстати всё как раз таки классно )

Lev
27.09.2016
17:30:33

Vladislav
27.09.2016
17:30:46
или вы считаете что такое возможно ОНЛИ скала?

Wystan
27.09.2016
17:30:55

Vladislav
27.09.2016
17:31:12
ну не нашел поле, заинитил его null или упал
смотря как хочется

Google

Vladislav
27.09.2016
17:31:39
просто если структура сильно вложенная, то я сделаю это лаконичнее в груви
вот и вся соль

Юрий
27.09.2016
17:32:04

Vladislav
27.09.2016
17:32:05
я писал и то и то на скале и груви
код валидации?
мне 1 символ не поставить
и оно будет падать
а поставлю - будет null
обписался

Lev
27.09.2016
17:32:28
Так успехов!

Vladislav
27.09.2016
17:32:40

Lev
27.09.2016
17:32:45
Мы же не против. Продолжай, как душе угодно :)

Vladislav
27.09.2016
17:32:46
но это не плохо
возможно

Юрий
27.09.2016
17:32:57

Vladislav
27.09.2016
17:33:10
ох

Sovent
27.09.2016
17:33:13
guys pls
Кстати, про JSON и алгебраические типы данных; хотел бы вклиниться в ваш срач. Сейчас пробую Circe для JSON, интересно, как он работает с алгебраическими типами данных. Вот, допустим, я пытаюсь десериализовать JSON, в котором сериализован один из наследников какого-то абстрактного класса и потом на нём pattern matching сделать, насколько это сложно сделать? Мне нужно будет пытаться десериализовать в каждый из наследников или придётся в JSON при сериализации какой-то type tag добавлять?

Vladislav
27.09.2016
17:33:20
на груви ты не писал явно
да, забавно забавно тут, по чаще буду захаживать

Google

Vladislav
27.09.2016
17:34:19
причем лишь особо упоротый считает, что я против типизации
такой как лев
))

Юрий
27.09.2016
17:34:32
Json не парсил, да. Так ты объяснишь?

Vladislav
27.09.2016
17:34:36
!
ты хотел символ

Юрий
27.09.2016
17:34:53
Я?

Vladislav
27.09.2016
17:34:55
кажется это был !

Wystan
27.09.2016
17:35:03
нет я!

Юрий
27.09.2016
17:35:05
Что? ?

Vladislav
27.09.2016
17:35:15
вы упоротее чем я предполагал)

Юрий
27.09.2016
17:35:15
Я видимо потерял нить

Vladislav
27.09.2016
17:35:22
! - и есть тот символ валидации

Lev
27.09.2016
17:35:34
Ох, вот так школоту в чатик-то пускать

Vladislav
27.09.2016
17:35:36
есть поле name или его нет
школоту?)
азазаз
школота не умеет читать толком, а тут читать не умеешь только ты по моему)
я привел лишь 1 юс кейс

Google

Vladislav
27.09.2016
17:36:25
где бы я хотел решать задачу без типизации
ну либо придется накручивать dsl сильно жесткий какой-то
4 человека пишет, красота
повысил популярность чата

Lev
27.09.2016
17:37:02
В том-то и суть, что от тебя по сообщению на слово и тонны аггро

Vladislav
27.09.2016
17:37:15
агро? да нет, 0 агро
я ж еще раз говорю, я не против скалы

Юрий
27.09.2016
17:37:24
Я так и не понял. Вот пришла к тебе строка. Есть у тебя либа, которая парсит в нетипизированный аст твою строку. Где-то там внутри у тебя нету нужного поля. Ты к нему обращаешься - падает ошибка. Или я не так понял?

Vladislav
27.09.2016
17:37:26
и сам пишу в частности на ней

Admin
ERROR: S client not available

Vladislav
27.09.2016
17:37:33
только не sbt у нас
можно и так

Wystan
27.09.2016
17:38:06
Ну… парсил джейсон, , ну, с одним символом.. Ну с одной дурой… Ну а потом скомилировался он…Ну быстро так, десять минут всего компилировался-то. А у меня потом сразу, path not found exceptions полетели… полил… полилася. Много эксепшенов налилось, я… ну когда десериализовал просто…

Vladislav
27.09.2016
17:38:38

Lev
27.09.2016
17:38:52
Потом окажется, что человек и с гуглом список от массива не отличит. А его поначалу даже всерьёз воспринимали :(

Vladislav
27.09.2016
17:39:10

Юрий
27.09.2016
17:39:14
можно и так
Ну если так, то вот же она - проблема. Если не хочешь непонятных ошибок непонятно где, придется руками проверять наличие поля. Об этом мы и говорим

Lev
27.09.2016
17:39:19
Печаль, я-то думал сегодня будет годная дискуссия

Wystan
27.09.2016
17:39:37

Vladislav
27.09.2016
17:39:50

Google

Vladislav
27.09.2016
17:40:08
чем принципиально типы решат проблему эту
мне кажется мы примерно об одном и том же, но..

Юрий
27.09.2016
17:40:27
Тем, что тебе ручную валидацию делать не надо

Lev
27.09.2016
17:40:40
Писали же. Валидация и тесты

Юрий
27.09.2016
17:41:01
Если структура сошлась - все ок. Не сошлась - сразу ошибка, без ручных проверок

Vladislav
27.09.2016
17:41:06
ну да
структура не сошлась - упали
без ручной валидации
в стэктрейсе будет указано где

Lev
27.09.2016
17:41:30
Да не упадёт у тебя жс

Vladislav
27.09.2016
17:41:35
чем это падение в груви отличается от падения скалы
какой js?

Vadim
27.09.2016
17:41:42
что за дурдом
Юрий вот представь что у тебя невероятно огромно вложенные json с кучей фигни и тебе надо достать одно поле - ты что будешь все case class'ами мазать это?

Vladislav
27.09.2016
17:41:51
я так и делал
в скале
а не
еще есть вариант через JSONObject какой-нибудь и forEach раскрывать через optional
ну или через матчинг

Юрий
27.09.2016
17:42:21

Vladislav
27.09.2016
17:42:27
но это всё в такую здоровую хрень в итоге раскрывается
что жесть
речь именно о таком кейсе и была бл