@scala_ru

Страница 655 из 1499
Wystan
14.05.2017
19:13:34
а сильно завязли в авсе?
нет, ну если интересно прочитай пост., хоть он и большой, но там написано что этот мезосфере железо-агностик

Nick
14.05.2017
21:34:38
Кстати, что там насчёт подската на google play? Он так и не появился?

folex
14.05.2017
21:40:46
щас проверю

но я находил багрепорты о том что заапложеннаф музыка не появляется в шареных плейлистах

Google
folex
14.05.2017
21:41:15
https://play.google.com/music/playlist/AMaBXykAdAJ34PZeeSQoLfXKetejwkgpXYG6b2xbbMHTF4cKAG0EnOeDiYRi5srJAOHWynao1oRS4VoZg-XK5fhhlmcOpdOw1Q%3D%3D

пусто

для проверки делал плейлист из 1го эпизода и одного трека https://play.google.com/music/playlist/AMaBXynKtJoEPxAo-lHyEo51SRDh-6Fe_hBCRp6r6eafhaUt_eKcDLbPVGEWIu6z1mVBnCmdX7aXZPnbkKmqSro2roPrE4QYrw%3D%3D

там только трек :(

Eugene
14.05.2017
22:17:43
чят, а поясните мне за shapeless, ну в смысле - кто-то ее пользовал чтоб прям с ней было все так легко-легко?

например апдейты полей внутри вложенных case class

folex
14.05.2017
22:24:53
это линзы, не обязательно шейплесс, например эти https://github.com/adamw/quicklens

Eugene
14.05.2017
22:26:37
ну я для примера привел то, что мне кажется более-менее практически полезным

coproducts я например никак не понимаю где бы их прям применить

ну вот например у меня есть некий API, который может вернуть типы A, B, C и D и вот зачем бы мне тут надо был сопродукт - я не оч понимаю

ну или я совсем тупею тут

Ilya
14.05.2017
22:43:43
Например у тебя функция принимает IntOrString

Или поле в кейсклассе UsernameOrUserid

Google
Eugene
14.05.2017
22:44:13
можно сразу спросить - какой юз-кейс тут?

ну то есть зачем бы мне функция, которая принимает IntOrString?

я не троллю,есличо

Ilya
14.05.2017
22:45:44
У меня конкретный юз-кейс. В домене есть транзакция, в ней поле адреса

А потом оказалось, что нужно не только на адрес уметь деньги переводить

Но и на алиас

Вот и завел AdressOrAlias

Могу представить EmailOrUsernameOrID

Ну и при использовании паттернматч

Норм?

Pavel
14.05.2017
22:53:19
для меня, shapeless, когда есть "почти модель" в виде строки csv/slick_row/googleBigQuery/json/etc, а в коде очевидно хочется работать с нормальной моделью (case class). Можно ручками с кучей бойлерплейта писать маппинги (или преобразрвания в обе стороны), либо магией (shapeless) где только выходные типы указывать

Eugene
14.05.2017
22:54:23
я вот про паттерн-матч не очень понял

type X = Int :+: String :+: CNil val z = Coproduct[X]("test") дальше-то как?

http://stackoverflow.com/questions/34107849/pattern-matching-with-shapeless-coproduct

это офигеть удобно

[sarcasm]

я бы для AddressOrAlias завел какой-нибудь sealed trait и на нем уже делал нормальный паттерн-матч

хз короч

folex
14.05.2017
22:59:01
или either

Eugene
14.05.2017
22:59:55
ну да, keep it simple

Google
Eugene
14.05.2017
23:00:20
кстати аммонит можно любить зотя бы и за это @ import $ivy.`com.chuusai:shapeless_2.12:2.3.2`

в целом идею взять тапл, сделать из него HList и затем перегнать в case class я нахожу весьма занятной

ровно до момента @ case class Test(param1: String, param2: Int) @ val zT = ("p",1) @ Function.tupled(Test.apply _)(zT)

folex
14.05.2017
23:17:21
из шейплесса теги хороши, и сразу понятно зачем они :)

type checked type alias

Eugene
14.05.2017
23:24:37
http://stackoverflow.com/questions/32250845/using-shapeless-tags-with-labelledgenerics

у одного меня от этого натурально глаз начинает дергаться?

Mikhail
15.05.2017
04:24:48
у одного меня от этого натурально глаз начинает дергаться?
от чего именно? там вопрос не годный, посмотри ответ к нему. Но даже он не означает, что это обязательно должно в полном виде (или вобще в каком-то виде) торчать наружу. Нужно локальное применение с понимаем того, зачем это тащишь

Daniel
15.05.2017
04:29:14
Шейплезз подходит отлично, когда нужно много интерпретаций делать и мапить на модели. В этом случае бойлерплейт снижается очень сильно. Сериализация/десериализация, например. Коллега еще рассказывала про то, что нужно было очень большую форму на странице разобрать с учетом того какие поля заполнены. С шейплеззом все оказаолось на порядок короче. Достаточно было описать базовые типы.

Mikhail
15.05.2017
04:34:03
@ozlol как выше написали - сериализация-десериализация один из годных кейсов где шейплез может быть заюзан. посмотри например либу https://github.com/netvl/picopickle я себе такую же написал сначала, а потом эту нашел, но правда не гонял) тебе достаточно определить только простейшие правила перегонки из одних типов в другие (нужные тебе при сериализации). все остальное под капотом проходит. и магии нет, просто то, что иначе ты делал бы кодогенерацией макросами или бойлерплейтом. да, это конечно как минимум в несколько раз(а где-то и на порядок) медленнее в рантайме чем то, что можешь получить кодогенерацией, но при наличии такой либы как указано выше - это можно сделать быстрее и не париться, если не нужно быстро что-то молотить

Aleksei
15.05.2017
04:41:20
Вообще всякие интересные кейсы описаны в шейплесс гайде. Да и то не все.

Но мне в проде не дают втащить шейплесс =) Бояться как огня, причем скорее всего бояться больше слова "шейплесс", чем чего то конкретного.

Daniel
15.05.2017
04:45:58
Так может и нет необходимости реальной. Коллега, которая мне про кейс с шейплессом рассказывала, тоже работала в команде, которая была против шейплезза. Но профит был слишком жирный, чтобы зарезать на пулл реквесте и переписывать всё руками.

Aleksei
15.05.2017
04:48:03
Не, нам он отлично зашел бы. =)

Nick
15.05.2017
05:43:54
Aleksei
15.05.2017
05:46:23
ну для всякого. например для парсинга из строки в кейс класс, для преобразования одного кейс класса в другой и просто потому что я так хочу =)

Kirill
15.05.2017
05:47:32
Последнее самое важное, кстати

Если душа просит, то надо действовать, я считаю

Aleksei
15.05.2017
05:50:26
да у нас атата по рукам за новые зависимости без обсуждения =) а обсуждение заходит в тупик на уровне "и так все работает"

ну такое, бытовое

Google
Mikhail
15.05.2017
05:54:54
Kirill
15.05.2017
05:55:35
ну да, зачем что-то новое, и так же работает)

Nick
15.05.2017
05:56:55
Как либо может быть small , если в депенденси есть shapeless

Grigory
15.05.2017
05:59:05
шаплез очень лайтвейт деп

Aleksei
15.05.2017
06:01:49
да ну не только кейс в кейс, в шаплессе же много всяких штук, которые упростят некотороый бойлерплейт

Grigory
15.05.2017
06:02:40
Admin
ERROR: S client not available

Grigory
15.05.2017
06:02:54
ну ток красным подсвечивает и все

Nick
15.05.2017
06:03:52
вообще идея кал

sn даже простой код не понимает

Sergey
15.05.2017
06:05:11
Но мне в проде не дают втащить шейплесс =) Бояться как огня, причем скорее всего бояться больше слова "шейплесс", чем чего то конкретного.
Можно поставить галочки когда в течении дня была ошибка которую пропустил компилятор но если бы была Shapeless то не пропустил. Проссумировать время которое было потрачено на отлов этих ошибок. И через неделю принести это исследование руководству, они умножат это на деньги и поймут готовы ли они пожертвовать зависимостью )

Sergey
15.05.2017
06:06:19
вы в каком то идеальном мире живете =)
Сделай свой мир тоже идеальным ! )

Aleksei
15.05.2017
06:06:28
мне уже даже без просьб внести шаплесс рассказали много раз какое зло коты,скалаз и шаплесс =)

Grigory
15.05.2017
06:06:28
про монгу

Nick
15.05.2017
06:06:37
про монгу
дай пять бро)

Google
Grigory
15.05.2017
06:06:46
на

Nick
15.05.2017
06:07:00
Aleksei
15.05.2017
06:07:28
коты зло? ну да, они у меня во дворе клумбу испортили
Тебе надо сменить ник на Полиграф Полиграфович =)

Grigory
15.05.2017
06:07:29
да удобряют они клумбы просто

Nick
15.05.2017
06:07:48
че в котах то злого?

Grigory
15.05.2017
06:07:54
кормить их надо хорошо, чтоб почву не портили только

Nick
15.05.2017
06:07:59
10 треитов и утильные методы)

ладно скалаз, там спеисшип операторы)

Aleksei
15.05.2017
06:08:34
ну то что придет потом другой инженер и ничего не поймет

типа надо оставить вот так как есть

Kirill
15.05.2017
06:08:55
Sergey
15.05.2017
06:08:59
мне уже даже без просьб внести шаплесс рассказали много раз какое зло коты,скалаз и шаплесс =)
это всё лирика когда станет ясно что один слот зависимости стоит к примеру +1000$ в мес, это уже будет другой разговор И вообще для себя интересно а так ли полезна шейплесс ? Что может быть объективней исследования

Grigory
15.05.2017
06:09:13
а как не поймет? не поймет потому что не знает абстракций

ну типа монад транформеры не видел никогда

Nick
15.05.2017
06:09:24
обычно ж код после котов строиный

Sergey
15.05.2017
06:09:37
дай пять бро)
про шеплесс же )

Aleksei
15.05.2017
06:09:38
у нас подозрительно часто в дев канале в слаке проскакивают статьи про ГО

так что

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