
Diemust
29.06.2017
21:26:54
а по какой книге? Вроде хорошее правило - держать кейс классы обособлено, не наследовать и тп

KrivdaTheTriewe
29.06.2017
21:26:59

Oleg
29.06.2017
21:28:54
а ещё лучше, я тут иногда форсю
http://julien-truffaut.github.io/Monocle/

Google

Alexey
29.06.2017
21:36:24
@diemust да по любой:-) я фигурально
если я засуну def withSvoistvo в трейт то потом я имплементирую этот метод в кейс классах и все как бы хорошо... так?

Oleg
29.06.2017
21:38:39

Alexey
29.06.2017
21:39:22
Линзы не особо помогут ибо все равно придется по кейс классам прописывать. Изящно конечно, не спорю. Но я пока кондово попробую, а потом когда будет посерьезнее кейскласс можно и оптику

Oleg
29.06.2017
21:40:04
если оптики интересуют, то автоматически ты можешь получить Prism[MyTrait, CaseClass1] и Lens[CaseClass1, Svoistvo] их композиция будет Optional[MyTrait, Svoistvo]
Но проходящая ровно через один вариант
Если самому написать сумматор для таких Optional - получишь то, что хотел

Alexey
29.06.2017
21:42:48
Ого... спасибо!

Bulat
29.06.2017
22:21:05

Nikita
29.06.2017
23:34:17

Nikolay
30.06.2017
02:08:47

Andry
30.06.2017
05:36:11

Google

Oleg
30.06.2017
06:01:44

Denis
30.06.2017
07:21:48

Oleg
30.06.2017
07:24:46

Nikita
30.06.2017
07:26:02
Олег, а мне ответишь?)
А есть пример посмотреть или какая документация на это? Сумматор это ты про композицию - часть апи монокля? Я концепты более менее понимаю, но конкретики не хватает

Oleg
30.06.2017
07:41:08

Nikita
30.06.2017
07:50:53
дадада, дай за кофе очередь выстоять
знаешь еще какие-то годные реализации линз?
я вот видел в scalapb такой вариант
mosh.update(
_.address.update(
_.city := "Valejo",
_.street := "Fourth"
)
mosh.update(_.address.residents :+= josh)как тебе?
https://github.com/scalapb/Lenses/blob/master/jvm/src/test/scala/SimpleTest.scala

Aleksey
30.06.2017
08:05:01

Nick
30.06.2017
08:05:50
Добавь ещё про аккамонгублокчин

Daniel
30.06.2017
08:05:56
главное, чтоб человек был счастлив

Aleksei
30.06.2017
08:05:58
отлично я считаю

Aleksey
30.06.2017
08:06:28
Не в тот чатик но ладно, пусть будет

Oleg
30.06.2017
08:07:46
Норм пример?

Grigory
30.06.2017
08:13:42
творец за любимым делом

Nikita
30.06.2017
08:21:39

Grigory
30.06.2017
08:21:49
про москаленко)

Nick
30.06.2017
08:22:08

Grigory
30.06.2017
08:22:18
H Y P E

Google

Nikita
30.06.2017
08:26:57

Grigory
30.06.2017
08:26:58

Митко Соловец?
30.06.2017
08:28:11
что за тусовка?

Nick
30.06.2017
08:28:30

Митко Соловец?
30.06.2017
08:28:40
хайлоад строят?

Aleksei
30.06.2017
08:29:06
не понимаю причем тут гранж

Митко Соловец?
30.06.2017
08:29:19
вообще это как шведский стол
для HR
столько скалистов в одном месте

Grigory
30.06.2017
08:29:37

Nikita
30.06.2017
08:29:43
Oleg а можно как-то получить немного другой синтаксис апдейта в монокле типа как я указывал выше? или это будет противоречить каким-то принципам?
mosh.update(
_.address.update(
_.city := "Valejo",
_.street := "Fourth"
)
mosh.update(_.address.residents :+= josh)

Grigory
30.06.2017
08:29:53
только поднимаешь уровень шуток выше сисек писек начинаются проблемы.

Митко Соловец?
30.06.2017
08:30:07

Grigory
30.06.2017
08:30:15
Рибята аноунсемент
сергей москаленко теперь cap dev

Oleg
30.06.2017
08:31:07

Nikita
30.06.2017
08:32:38
ок, но все равно большое спасибо за пример, сохронил

Aleksei
30.06.2017
08:36:38

Grigory
30.06.2017
08:37:00
заберу на цитату

Aleksei
30.06.2017
08:37:57
тем не менее я хочу понять референс, это типа что вижу то пою?
на этом уровне?

Google

Grigory
30.06.2017
08:41:11
ну аналогия, типа курт отличный певец как мы знаем вот и поет всякое прекрасное и очень красиво (надеюсь фанаты кобейна не закидают меня его рифами)
вот нельзя просто раскрывать и рассказывать смысл шутки прямым текстом, она сразу становится набором убогого текста.

Aleksei
30.06.2017
08:42:31
но гранж это не только нирвана =(
да, ты сликшом как то завернул прямо
=)

Admin
ERROR: S client not available

Grigory
30.06.2017
08:47:56
я просто покашляю и ретируюсь, сделаю вид что этого разговора никогда не было

Oleg
30.06.2017
08:49:28

Nick
30.06.2017
08:49:38

Oleg
30.06.2017
08:49:53
получишь Chatter => Chatter

Nikita
30.06.2017
08:50:30
ок понял, спасибо!

Oleg
30.06.2017
08:51:08
а потом можешь сравнить с
(Chatter.toxic ^|-> Toxic.toxicity).modify( _ - 0.5)
композиция тупо короче

Nikita
30.06.2017
08:53:33
а можно как-то сделать чтоб этот модифай применять от имени инстанса кейс класса? типа
val person = Person(name = "Some name", address: Address(street = "street"))
person.modify(_.address.street = "another street")

Alexander
30.06.2017
08:56:25

Oleg
30.06.2017
08:59:47

Nikita
30.06.2017
09:01:10
спасибо :) буду пробовать

Oleg
30.06.2017
09:12:08
Но, ты же сам, наверняка, докадываешься, что фриманатки лучше
Плюс моноклевых линз полимофрных в том, что их и на фриманатки можно натянуть

Aleksey
30.06.2017
09:15:49
Скаланы! Вопрос про девелопер экспириенс. Вот на пример у вас есть какой-нибудь фреймворк. У фреймворка есть режим разработчика, который включает какие-ниьудь там полезности, которые нужны во время разработки, но не нужны в продакшоне. Как лучше всего на ваш взгляд этот режим должен включаться?

Google

Grigory
30.06.2017
09:16:46
флаг в app.conf | переменная среды

Oleg
30.06.2017
09:19:23

Nick
30.06.2017
09:19:45
ну что, кто поидет на jug в Питере?

Oleg
30.06.2017
09:20:11
runDebug vs run

Aleksey
30.06.2017
09:20:30

Nick
30.06.2017
09:20:33
-O2 лол

Oleg
30.06.2017
09:21:04

Nick
30.06.2017
09:21:07

Oleksandr
30.06.2017
09:21:23
run/runDebug же сбт-специфичное

Oleg
30.06.2017
09:22:16
типа
if(System.getProperty("korolev.debug")) application.runDebug else application.run

Юрий
30.06.2017
09:23:19
лучше не делать привязки к сбт.
флаг в app.conf | переменная среды - норм решение

Aleksei
30.06.2017
09:23:37
ога, у нас так было где то когда то. в принципе норм

Grigory
30.06.2017
09:24:06
Девопсы любят переменные среды

Nick
30.06.2017
09:26:59
можно сделать envs и ключи как к примеру в clang

Oleg
30.06.2017
09:28:27
Если бы я юзал фреймворк, я бы предпочёл, чтобы я выбирал режим в коде, а код связывал с конфигом, как мне удобно, а не как фреймворк решил