@scala_ru

Страница 92 из 1499
Daniel
14.09.2016
06:51:04
осеннее обострение у всех? давно не помню такого количества чуши

Eugene
14.09.2016
06:54:54
Какие либы для плея сейчас в тренде для аутентификации через соцсети? Раньше пользовался securesocial https://github.com/jaliss/securesocial Но как-то там все заброшенным выглядит - c апреля не могут принять пр для поддержки 2.5 https://github.com/jaliss/securesocial/pull/587

Viacheslav
14.09.2016
07:03:13
Spring-social ты хотел сказать

Google
Nick
14.09.2016
07:03:37
Ну да, но одно без другого деньги на ветер?

Eugene
14.09.2016
07:11:06
Не считая хейта спринг стека при разработке на скала, спасибо. Что скажете по поводу play2-auth? https://github.com/t2v/play2-auth Там даже 4 провайдера есть! И вк с марта пушат https://github.com/t2v/play2-auth/pull/170

Viacheslav
14.09.2016
07:20:32
Ориентируйся по звездам на небе...

То есть на гитхабе

Aleksei
14.09.2016
07:29:52
https://github.com/mohiva/play-silhouette

Eugene
14.09.2016
07:33:24
О! Что-то новое. И провайдеров много

Спасибо

Aleksei
14.09.2016
07:34:11
да не новое ) просто забытое старое

Daniel
14.09.2016
08:01:50
о, этот перс импортнул в чатег псевдо узбечку где там банхаммер?

Andrey
14.09.2016
08:02:07
эт что за покемон?

Aleksei
14.09.2016
08:02:11
@fomkin вот этот с мотоциклом тоже в бан плиз

Aleksey
14.09.2016
08:08:55
?Ivan
14.09.2016
08:09:20
Уже нету его.

Google
Aleksey
14.09.2016
08:09:51
Я уж испугался что @Emiya402 надо банить :(

Aleksei
14.09.2016
08:10:48
да нет конечно

просто сегодня какие то странные двое приползли

/

такие дела

Aleksey
14.09.2016
08:15:18
Чятик у меня вопрос. Есть на пример кейсклас case class User(name: String, fingers: Seq[Finger]) (где type Finger = String к примеру). И есть json { «name»: «Vasja», «fingers»: «first» }. Должна быть ошибка при чтении или нет?

Daniel
14.09.2016
08:15:50
имхо, да

Andrey
14.09.2016
08:16:23
+ за ошибку

Lev
14.09.2016
08:17:04
Я бы в суд подал, если не было ?

Aleksey
14.09.2016
08:18:38
А можно какое-нибудь обоснование? Чем это страшно? Ведь у нас есть ожидаемая структура. Мы можем прозрачно, безошибочно привести один элемен к списку из одного элемента (потому что один элемен это частный случай списка).

Lev
14.09.2016
08:20:05
Как минимум, десереализация-сериализация будут менять оригинал

Ну и вообще, это дорога к ===

Alexey
14.09.2016
08:21:03
+ за ошибку

Aleksey
14.09.2016
08:21:27
десереализация-сериализация почти всегда меняют оригинал. хотя бы убивают форматирование :)

Alexey
14.09.2016
08:21:43
так и ids: [1] можно в ids: "1" превратить

есть схема. нужно ей следовать

Aleksey
14.09.2016
08:22:23
так и ids: [1] можно в ids: "1" превратить
Вообще да. Примерно как Option разумно не оборачивать ни во что.

Я к чему спрашиваю. Есть у меня хранилище джейсона. Есть кейскласс, у него стрингове поле. Я решил поменять его на Seq. Сейчас мне необходимо делать миграцию. Такое случилось уже несколько раз и я подумал, а какого хрена?

Diemust
14.09.2016
08:26:29
может тогда просто все стринговые поля на список поменять сразу? =)

Google
Lev
14.09.2016
08:27:41
Или добавить трансформацию при чтении, если хочется костылей другой формы ?

Aleksey
14.09.2016
08:28:04
То есть идея такая: на чтения мы работаем нестрого. Какая разница как там джейсонописатель ошибся, если мы эту ошибку можем скомпенсировать? На запись делаем как положено.

Lev
14.09.2016
08:30:05
Профит-то ясен, но область применения, мягко говоря, металлизирована

Aleksey
14.09.2016
08:30:13
Кстати это полезно для внешних API всяких. Сидит на той стороне человек с похапе и не понимает разницы между строкой и числом. И пишет строку, хотя мы ожидаем число. Мы такие, ага, на прислали строку, но мы можем ее распарсить, значит распарсим.

Lev
14.09.2016
08:30:21
Я такие проблемы в публичных апи ещё видел

Да-да

Но я бы за флагом это спрятал

Diemust
14.09.2016
08:30:58
может лучше сразу послать запрос далеко и надолго и пусть чувак переделывает?)

Lev
14.09.2016
08:31:43
Если бы на дефолтах библиотека так поступила, я бы негодовал

Diemust
14.09.2016
08:31:49
+

Ivan
14.09.2016
08:32:06
То есть идея такая: на чтения мы работаем нестрого. Какая разница как там джейсонописатель ошибся, если мы эту ошибку можем скомпенсировать? На запись делаем как положено.
Я так сделал свои парсеры. Потому что внешние апи часто любят строковые параметры преобразовывать в списки и по факту апдейта ты только об этом узнаешь когда все упало уже.

Ivan
14.09.2016
08:33:59
Или любят числа строками передавать

Aleksey
14.09.2016
08:34:24
folex
14.09.2016
08:35:22
Чем строже, тем проще

Diemust
14.09.2016
08:35:25
писал чувак на скале, зафигачил кейс класс с изначально неправильным типом. Запрос прошел, а ответ валится. Тут уже не так легко пользователю

folex
14.09.2016
08:35:27
с апи уж точно

Nick
14.09.2016
08:35:42
@fomkin есть строгая спецификация json формата, все отступление от этого формата является нарушением

и таких нужно слать в попку

Aleksey
14.09.2016
08:36:18
писал чувак на скале, зафигачил кейс класс с изначально неправильным типом. Запрос прошел, а ответ валится. Тут уже не так легко пользователю
Ну почему же. С кейсклассом ты не ошибешся, потому что там тебе компилятор подскажет. Ответы у тебя всегда одинаковые.

Google
Vladimir
14.09.2016
08:36:48
1 ~= "1" еще куда не шло, но "string" ~= ["string"] совсем не катит

Aleksey
14.09.2016
08:37:13
@fomkin есть строгая спецификация json формата, все отступление от этого формата является нарушением
А при чем тут JSON формат? JSON не изоморфен скаловской системе типов.

Мы в любом случае «натягиваем» одно на другое

Lev
14.09.2016
08:38:01
Я правильно понимаю, что сейчас речь о стрельбе в ногу из пушки?

Grigory
14.09.2016
08:38:08
да

Lev
14.09.2016
08:38:11
Не мог удержаться ?

Aleksey
14.09.2016
08:38:26
Я хоть убей не вижу выстрела в ногу.

То есть не понимаю когда это может сломаться.

Admin
ERROR: S client not available

Viacheslav
14.09.2016
08:39:37
ну чуваку прилетает толи строка толи массив - не все языки такие красивые как скала и могут делать магию с монадами

Vladimir
14.09.2016
08:39:49
То есть не понимаю когда это может сломаться.
как трактовать пустую строку? :)

Viacheslav
14.09.2016
08:39:51
поэтому для простого джависта например это будет мега wtf

Vladimir
14.09.2016
08:40:13
что если "чувак с пхп" на том конце имел ввиду под ней пустой массив

Aleksey
14.09.2016
08:40:27
как трактовать пустую строку? :)
если у нас Seq[String] то как Seq(«»).

Я же не предлагаю читать мысли.

Nick
14.09.2016
08:41:01
если у нас Seq[String] то как Seq(«»).
пустая строка, это пустая строка

если у тебя Seq, то он обязан слать либо null либо []

Aleksey
14.09.2016
08:42:04
Пушка кстати с налами шлет куда подальше, если не Option. Если Option то None.

Lev
14.09.2016
08:42:27
То есть не понимаю когда это может сломаться.
Ту уже фантазия нужна... Проксирование вызовов, проблемы при роллинг апдейтах. Вообще, все случаи, когда с той стороны хотят явно передавать без контейнера

Google
Vladimir
14.09.2016
08:42:40
play тоже так делает, число как строку тоже вполне понимает, пытаясь привести

folex
14.09.2016
08:42:44
Единственная проблема — это то что ты юзера путаешь. Это не критично, но может привести к сложностям. Ну и еще обычно тем проще проводить различного рода изменения в АПИ, чем само АПИ строже, и использование его менее разнообразно.

Vladimir
14.09.2016
08:43:33
а вот для чисто php-шного кейса, когда мне вместо boolean прилетала 0/1 пришлось костыль писать

Nick
14.09.2016
08:43:34
@fomkin что значит не изоморфен? стринги и примитивы одинаковые

не нарушайте форматы, у нас одни пидорасы csv не по формату шлют и из-за этого ппц какие проблемы

Aleksey
14.09.2016
08:44:43
если у тебя Seq, то он обязан слать либо null либо []
Это все априорные аргуметны. Так должно быть потому что так должно быть. Мне это все известно. За априорными знаниями я лучше схожу в церковь. Мне нужна реальная аргументация против. Моя точка зрения: чем меньше вариантов дать на вход неверные данные тем лучше. Один элемент это частный случай списка элементов. Где может быть проблема?

@fomkin что значит не изоморфен? стринги и примитивы одинаковые
Да ну. На пример по спецификации JSON Number это вообще произвольное число. Хоть хуилиард. А в кейсклассе у тебя Int.

@fomkin что значит не изоморфен? стринги и примитивы одинаковые
Далее. Как писать sealed trait с наследниками? Это есть в спецификации JSON?

Map[Foo, Bar] это {} или [[]]?

Nick
14.09.2016
08:47:00
MAP это {}

Aleksey
14.09.2016
08:47:16
Да что ты. А если ключ не приводится к строке?

Nick
14.09.2016
08:47:51
что значит неприводится

Aleksey
14.09.2016
08:48:06
В пушке на пример это на уровне типов доказывется. Если у тебя определен генератор ключаей для типа (по умочани определен для UUID и String) то {}, если нет то [[]]

Viacheslav
14.09.2016
08:48:13
просто возьми jackson и попробуй сделать класс в котором это поле будет листом, если оно из строки распасится в лист, то ок, если не ок, представь как будут страдать твою юзеры твоего апи когда ты им такой фокус покажешь

аналогично для других языков, посмотри глазами юзеров. А концептуально в принципе идея норм

если бы все писали на скале...

Viacheslav
14.09.2016
08:50:06
на пользователей твоего апи

Nick
14.09.2016
08:50:09
@fomkin на вход то у тебя что прилетает

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