
Alexey
19.02.2018
14:28:12
Как в твоих влажных фантазиях это выглядит?

Grigory
19.02.2018
14:28:39

Alexey
19.02.2018
14:30:37

Wystan
19.02.2018
14:31:03
Ну я бы тоже сначал написал диф на уровне данных. А потом уже шейплесс для диффа на уровне типов. Даже алгоритм пока не понятен

Google

Grigory
19.02.2018
14:32:44

Alexey
19.02.2018
14:35:31
https://gist.github.com/anonymous/5548148fc0bc67cf8ce6d40e61f78837

Daniel
19.02.2018
14:37:52
вот ты!
лайв коддинг на твиче, сделать конкуренцию Шипилёву

Grigory
19.02.2018
14:38:06

Alexey
19.02.2018
14:40:29
Да, shapeless подойдет для клея всего этого я думаю

Dmitri
19.02.2018
14:43:21
Я тут новичок, что тут многие советуют шэйплесс. Мы его в наш проект втянули и теперь компиляция занимает в 1.5-2 раза дольше. С этим стоит просто смириться или есть какие секреты по оптимизации?

Vladimir
19.02.2018
14:44:24
секретов нет, мучительно выпиливали его для авто-деривейшона json

Grigory
19.02.2018
14:44:27

Vladimir
19.02.2018
14:44:42
кмк он хорош для прототипов, если прототип себя показал, можно писать выводилку на макросах

Oleg
19.02.2018
14:45:01
есть секретный компилятор с секретной фичей

Alexey
19.02.2018
14:46:23

Google

Alexey
19.02.2018
14:46:51

Oleg
19.02.2018
14:46:54
scalaOrganization := "org.typelevel"
scalaVersion := 2.12.4-bin-typelevel-4"
scalacOptions += "-Yinduction-heuristics"

Alexey
19.02.2018
14:47:10
Потому что это всё зависит у тебя от рантайма

Grigory
19.02.2018
14:47:10

Oleg
19.02.2018
14:47:44

Grigory
19.02.2018
14:47:48
а в главный компайлер не вмержили?

Alexey
19.02.2018
14:48:03
Максимум что ты получишь - Option[Diff[A, B]] :: Option[Diff[A, B]] :: HNil

Oleg
19.02.2018
14:48:17

Alexey
19.02.2018
14:48:25
То есть ты сможешь написать на уровне типов, что у тебя возможно есть дифф в этом поле

Grigory
19.02.2018
14:48:35

Alexey
19.02.2018
14:49:12
Корневой объект всегда один
*одного типа

Oleg
19.02.2018
14:49:43
ну можно такое замутить, если считать рекорды эквивалентными кейзклассам
либо писать вручную диффабл для каждого типа

Alexey
19.02.2018
14:50:38

Oleg
19.02.2018
14:50:51
есть ещё один вариант, но он требует переписывания доменной модели

Alexey
19.02.2018
14:51:02

Alexey
19.02.2018
14:52:28
ладно, пойду попробую что нить из обсужденного

Wystan
19.02.2018
15:19:23
ладно, пойду попробую что нить из обсужденного
Я попробовал как-то для данных, даже без типов, пописать. Ничего кроме простейшего рекурсивного прохода в голову не пришло: https://gist.github.com/anonymous/aed8729503a7206e834e879896b4c0d2

Google

Wystan
19.02.2018
15:19:28
Наверное, это никак не поможет
Интересно, как такое же рекурсивное сравнение для типов написать. Там по идее немного сравнений. Два типа или простые Т, N и их можно на равенство сравнить, или они одинаковые контейнеры F[_, _, _] - тогда нужно все типы в "дырках" сравнить. Но подозреваю, что в реальной ситуации все-таки стейт без "многодырочных дженериков", так что можно перебором решить.

Oleg
19.02.2018
15:42:43
типы лучше не сравнивать

P.
19.02.2018
16:53:44
То что выше говорили про shapeless точно так же относится к цирце? Не юзать automatic derivation?
https://triplequote.com/hydra
Этим можно пользоваться?

Aleksei
19.02.2018
16:55:23
ну там EAP и она вроде платная или не?

P.
19.02.2018
16:59:51
Мне помнится ее тут упоминали в таком ключе что в какой-то там тиме ее юзали

Aleksei
19.02.2018
17:13:00
вполне, я что то такое же помню, вроде как заландо как раз и юзает

Vladimir
19.02.2018
17:17:33

Grigory
19.02.2018
17:26:15

Vladimir
19.02.2018
17:35:45
Я не углубляося, но скорость компиляции раз в 5 возросла

Oleg
19.02.2018
19:40:37
внятность ошибок вырастает выше гор

Sergey
19.02.2018
20:24:08
Этим можно пользоваться?
Мы пользуемся, ускоряет - да, судя по выхлопу - основан на typelevel/scala, либо сами патчат сверху, выдают ключик после реквеста, потом спрашивают как оно и пытаются договориться о ценнике, ценник индивидуальный соответственно

Oleg
19.02.2018
20:41:39
И сколько с вас спросили?

Aleksei
20.02.2018
07:08:51
А как проще всего публиковать артефакты? Есть ли какой то инструмент для сбт, который позволяет в зависимости добавлять репки прямо с гитхаба прямо вот быстро?

Alexey
20.02.2018
07:10:14
А второй вопрос как нибудь связан с первым?

Aleksei
20.02.2018
07:10:38
да, они оба написаны в одном сообщении

Google

sherzod
20.02.2018
07:10:49
В королёве есть пример и того и другого)

Alexey
20.02.2018
07:12:12

Aleksei
20.02.2018
07:12:48

Alexey
20.02.2018
07:13:12

Алексей
20.02.2018
07:13:20
https://github.com/sbt/sbt-release про это чтоли?

sherzod
20.02.2018
07:22:05

Aleksei
20.02.2018
07:23:17
ой ну и ладно, как нибудь сам с гуглом справлюсь. а то чо эт решил поспрашивать занятых господ =)

Александр
20.02.2018
07:24:02

Aleksei
20.02.2018
07:26:10
от нотификаций?

Александр
20.02.2018
07:26:45
по итогам поиска

Aleksei
20.02.2018
07:27:07
а ок, я пока решил забить, ибо прототип может быть и на костылях )
но вообще реально в мавен за две команды
просто надо сначала зарегиться
потом gpg ключ
потом в жире создать ишью

Andrey
20.02.2018
07:27:34
Коллеги, подскажите идеоматичный способ получить в скале значение поля кейс класса, по его имени, ну кроме рефлексии конечно)

Oleg
20.02.2018
07:27:47

Aleksei
20.02.2018
07:27:53
вроде в мапу можно кейс класс сконвертить
или не?
но вообще Олег прав, шаплесс для таких вещей

Google

Andrey
20.02.2018
07:28:12
шейплессия
Вот тяжелых наркотиков хочется избежать)
Да про щейплесс понятно, что можно. Но вдруг есть способ более поростой?

Aleksei
20.02.2018
07:30:12
а не, там итератор по полям, без имен

Daniel
20.02.2018
07:30:20

Aleksei
20.02.2018
07:30:26
так что хочешь не хочешь, днем или ночью, шаплессс тебя найдет!

Oleg
20.02.2018
07:31:03
можно один раз рефлекшном получить имена полей по порядку

Aleksei
20.02.2018
07:31:08

Alexey
20.02.2018
07:32:42
http://central.sonatype.org/pages/sbt.html

Aleksei
20.02.2018
07:34:56
спасибо
но я понял что там надо кому то тикет в жиру запихнуть с описанием проекта
а мне пока такого не надо =)

Alexey
20.02.2018
07:35:29
Ну это, только если надо создать groupId
Делают быстро если ты уже оформил домен

Aleksei
20.02.2018
07:36:18
это пока оверкилл для меня, но спасибо за инфу.