
Vladislav
27.09.2016
17:42:54
лев вообще про js
ээ
я тут оказывается 20 минут со стеной спорил?
в скале синтаксически будет не так приятно раскрывать такую структуру на месте

Google

Vladislav
27.09.2016
17:43:35
в groovy это будет через ? и !

Oleksandr
27.09.2016
17:43:56
а "неревантный джсон" будет в памяти отнимать место?

Vladislav
27.09.2016
17:44:02
я в своё время писал агрегатор на фрилансе, и очень рад что конкретно скрипты для парсинга писал именно на груви

Oleksandr
27.09.2016
17:44:07
на синтаксис мне большей частью все равно

Vladislav
27.09.2016
17:44:14
не

Oleksandr
27.09.2016
17:44:21
(я про что-то типа SAX парсеров)

Vladislav
27.09.2016
17:44:38
у тебя по сути json парсится на входе, а дальше ты по нему бегаешь уже как по мапе
хм

Oleksandr
27.09.2016
17:44:53
так чтобы бегать по мапе, надо прочитать, не?

Vladislav
27.09.2016
17:44:57
да
я писал ДО сакс
а какую тебе валидацию даст sax

Oleksandr
27.09.2016
17:45:18
в скале доп оверхед на создание классов на каждый чих
(этого можно не делать)

Google

Vladislav
27.09.2016
17:45:20
у тебя в самом конце может скобочки не быть

Юрий
27.09.2016
17:45:21
@troy4eg я могу ошибаться, но play-json вроде как раз умеет доставать вот такие вложенные значения с короткой записью

Vladislav
27.09.2016
17:45:23
разве нет?

Oleksandr
27.09.2016
17:45:35
я про кейс "вытащить одно-единственное поле из огромного джсона"

Wystan
27.09.2016
17:45:41

Vladislav
27.09.2016
17:45:47

Oleksandr
27.09.2016
17:46:32
плей парсит весь джсон, не лениво

Vladislav
27.09.2016
17:46:53
просто есть у тебя юзер, у юзера phone, внутри него code (код страны допустим) user?.phone?.code

Wystan
27.09.2016
17:47:29
запахло что-то кофескриптом.

Vladislav
27.09.2016
17:47:36
ну я на кофе не писал
но не удевлюсь, если они что-то с груви взяли
да и не только они
в свифте кажется тоже

Юрий
27.09.2016
17:48:13
Такое можно сделать на скале, просто это нужно довольно редко

Vladislav
27.09.2016
17:48:53
в груви оно вытекает из самого языка, а не из доп либ или чего-то подобного
ну и вообще, в языках без типизации оно так принято
кейс не частый, я согласен

Юрий
27.09.2016
17:49:30
Если у тебя это был частый кейс - implicit conversion с перегрузкой ?. и в путь

Vladislav
27.09.2016
17:49:30
но я рад, что спустя 20-25 минут мы пришли к тому, что он есть

Google

Lev
27.09.2016
17:50:19
жс - груви… в этом кейсе разницы нет. есть у тебя поле в джейсоне. value: Int. всегда тебе слали инты, но вдруг передумали и начали слать строки. а ты в отчётах выводил obj.value + 42

Vladislav
27.09.2016
17:50:35
ну есть разница

Юрий
27.09.2016
17:50:40

Vladislav
27.09.2016
17:50:41
в груви такая хрень не прокатит

Lev
27.09.2016
17:50:55
тебе пример прислать?)
прокатит легко
println(new JsonSlurper().parseText('{ "name": "1" }').name + 3)

Vladislav
27.09.2016
17:52:04
ну ок, оно отработает, наеврное

Lev
27.09.2016
17:52:15
только не спрашивайте, почему я 3 к имени прибавляю ))

Vladislav
27.09.2016
17:52:29
только мне кажется, если ты так писать будешь - тебе что-то оторвут
Integer.parseInt какой-нибудь никто не отменял
а то и вовсе

Lev
27.09.2016
17:53:12
ну ок, оно отработает, наеврное
так об этом изначально речь и шла. ты или пишешь одну красивую строку и валидируешь и покрываешь тестами или используешь менее красивую типизацию, но живёшь спокойно

Vladislav
27.09.2016
17:53:14
в редкий юс кейсах может понадобиться бигдецимал

Oleksandr
27.09.2016
17:53:14
так в том и кейс, что в апи1 была стринга, в апи2 стал инт, а смысл поменялся
груви-то схвает и то, и то

Vladislav
27.09.2016
17:53:28
ну окей
и упаду я по парсингу
из строки не сделается инт

Lev
27.09.2016
17:53:51
а это уже некрасиво

Google

Vladislav
27.09.2016
17:53:53
пф

Lev
27.09.2016
17:53:58
и тут плюсы груви таят

Vladislav
27.09.2016
17:54:07
у тебя под капотом всё тоже самое происходит
лол

Oleksandr
27.09.2016
17:54:11
(я совершенно не знаю груви, как я понял, у него слабая типизация)

Lev
27.09.2016
17:55:01

Юрий
27.09.2016
17:55:03

Lev
27.09.2016
17:55:11
подтвердив начальный тезис

Vladislav
27.09.2016
17:55:14

Admin
ERROR: S client not available

Юрий
27.09.2016
17:55:14
А это уже ошибка бизнес логики будет

Vladislav
27.09.2016
17:55:29
теперь ты не читаешь
ох, тяжело ребята, тяжело с вами)

Lev
27.09.2016
17:55:46
так это валидация

Юрий
27.09.2016
17:55:53
+

Lev
27.09.2016
17:55:59
так и будешь каждое поле валидировать

Vladislav
27.09.2016
17:56:07
под валидацией я думал вы про чуть чуть другое
каждое?
АХАХАХ

Google

Vladislav
27.09.2016
17:56:14
каждое
3 поля надо, 1 должно быть числовым
ну всё, обвалидировался)

Юрий
27.09.2016
17:56:46
Ну а если их 40?

Lev
27.09.2016
17:57:02
все 3 нужно будет валидировать

Vladislav
27.09.2016
17:57:12
а зачем остальные 2 валидировать?
меня устроят строки

Lev
27.09.2016
17:57:30
потому, что там тоже битое могут прислать

Vladislav
27.09.2016
17:57:34
или эти строки пахнут хуже, потому что груви-джава строки, а не скала-джава
битое что?) значение?

Юрий
27.09.2016
17:57:47
Ты опять про вырожденный случай, а мы про общий

Vladislav
27.09.2016
17:57:50
поле text у твитта

Viacheslav
27.09.2016
17:58:12
Оо ура! Я дочитал до конца чата

Vladislav
27.09.2016
17:58:22
мне кажется, тебе памятник надо

Lev
27.09.2016
17:58:24

Vladislav
27.09.2016
17:58:34
нене, мне надо работать
а где-то не так? ну где-то хуже, где-то лучше…типа костылей нету ни у кого? ну-ну
что за сферический код в вакууме
или проект