@scala_ru

Страница 123 из 1499
Vladislav
27.09.2016
17:28:02
Но ты держи нас в курсе, как без типизации живётся :)
как тебе типизация поможет с парсингом json?

причем с простым таким

я уже описал, отрывается поле, у внешнего апи теперь его нет

твоя скала его сама сгенерит и значение засунет любое? не смеши

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 кстати всё как раз таки классно )

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
мне 1 символ не поставить
Что? Какой символ?

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 полетели… полил… полилася. Много эксепшенов налилось, я… ну когда десериализовал просто…

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

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

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

Wystan
27.09.2016
17:39:37
видимо что-то жизненное из собственного опыта?
просто цитату из зеленого слоника всомнил, я за дискуссией уже не успеваю.

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

ну или через матчинг

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

что жесть

речь именно о таком кейсе и была бл

Страница 123 из 1499