
Vadim
22.05.2018
09:11:33
я с лихоя увидел оригинал

Nikolay
22.05.2018
09:12:38
Я про последний пост. Оригинальный proposal немного странный

Юрий
22.05.2018
09:17:06
последний вариант прям топчик

Vadim
22.05.2018
09:17:15
по мне так шило на мыло

Google

Vadim
22.05.2018
09:17:23
а то что лихой предлагает я хз зачем вообще

λoλcat
22.05.2018
11:21:11
Мне тоже понравился вариант лихоя, но пока не попробуешь на это переписать что-нибудь жирное, минусы не вскроются
Я ток не понял, вот эту поплаву .explicitly(a) уже окончательно затащили в доттю?
Ее еще давно мартин показывал в презенташках
Но сейчас это ставится под вопрос

Nikolay
22.05.2018
11:24:53

Р
22.05.2018
11:28:33
Я бы ещё революционную штуку сделал. Вот это вариант бы не включал:
def f(a: Int, implicit b: Int = -1, implicit c: Int = -1)
Defaults + implicits - это мегаопасная вещь, которая стреляет в ногу даже тем кто не догадывается о её существовании. Самый кайф - это сделать не тот тип в implict val и получить type safety на уровне JavaScript :D

Oleg
22.05.2018
11:34:11

Nikolay
22.05.2018
11:34:57
Тут предлагается их объединить

Oleg
22.05.2018
11:36:56
Ок понял
А что про тайп-сэйфти?

Google

Oleg
22.05.2018
11:37:38

Vadim
22.05.2018
11:39:11
да эт риальне кал - эдинственное что типа "улучшается" это инфер обычных параметров на базе имплиситов - но я чет сомневаюсь, что муть с explicitly явно лучше чем вывести функцию и объект и дальше зааплаить остальные параметры
чем вернуть*

Oleg
22.05.2018
11:41:09
ну давайти дизлайки на комменте ставить

Vadim
22.05.2018
11:42:57
а лихаевский вариант это добро пожаловать - теперь еще поганее можно творить говнодизайн аля экзекушен контестов и таймауйтов
да надо собраться и тож простыню накатать

Р
22.05.2018
11:48:01

Oleg
22.05.2018
11:59:23

Р
22.05.2018
12:03:47
Понял, логично.
В жизни я видел эту проблему в использовании ExceptionHandler в Akka HTTP. Там его можно имплицитно подключать и, конечно, по закону Мерфи его имеено так и подключают, а потом никак не могут понять почему он версию по-умолчанию в лайве берёт.

Mikhail
22.05.2018
12:15:12

Р
22.05.2018
12:24:30


Mikhail
22.05.2018
12:33:13
Смотря как определять тайп сейфити. Я же не сказал что type safety отсутсвует, а то что он становится на уровне JavaScript'a. Там тоже рыбы не летают по небу. Ну тут уже риторика начинается и философия немножко. Спорить не стану. Я понимаю о чём вы и принимаю претензию.
Можно смотреть на это как то что вы сложить пытались в Context вместо того что нужно Option[Context] или OtherContext, а вам вместо того чтобы не дать это сделать на этапе компиляции, или хотя бы в runtime ошибку выдать, операцию молча проигнорировали.
Смотреть на это нужно как
скала погромист просветленный
- как оно есть, так и видеть.
def chepuxa(value:Int = 5)
- если ты определил дефолтное значение и потом вдруг по любым обстоятельствам не передал какое-то другое значение и получил на выходе не совсем то, что ожидал - то это исключительно твоя заслуга как погромиста. ты сам определил, что на безрыбье и рак рыба. скала тут не при чем, как не изворачивайся. у компилятора (по крайней мере у скала-компилятора точно, насколько мне известно) не стоит задачи писать программу и проводить семантический анализ за тебя. поэтому не надо сьезжать и подавать дурной пример юным джедаям. описать боль определенного паттерна - это хорошо, подменять понятия - плохо.


Oleg
22.05.2018
12:35:28
Ну я сам изредка натыкаюсь на неподтягивание вроде implicit Printer в AkkaHttpCirce
На самом деле даже сам пару раз писал такую штуку.
Особая проблема - что если имплиситы конфликтуют или там расходятся, такая же фигня - просто берёт дефолтный.
Если здесь изменить поведение - было бы чуть лучше
Но в отдельных случаях дефолтные имплиситы - это чуть ли не единственный способ сохранить обратную совместимость

Р
22.05.2018
12:39:07

OlegYch
22.05.2018
12:43:47
дефолтных аргументов вообще лучше избегать
а с имплиситами это вообще бомба замедленного действия

Oleg
22.05.2018
12:51:18

OlegYch
22.05.2018
12:56:50
легко случайно забыть указать аргумент
https://github.com/wartremover/wartremover/issues/116

Google

Nick
22.05.2018
13:03:02

Евгений
22.05.2018
13:03:18
Пыха в чате по скале?
!бан

Oleksiy
22.05.2018
13:06:38
Хотелось бы пошуть на пыхе, но пыха - не шутки. (пишу на ней каждый день)

Alexey
22.05.2018
13:09:18

Wystan
22.05.2018
13:23:36

Andrey
22.05.2018
13:37:13

M
22.05.2018
13:39:01
кейк паттерн же
хотя струдом представляю акка как спринг
в какой роли ? секурити нету ресты акковые неочень , акка стрим против реактора в спринге 5 ?

Р
22.05.2018
13:40:59

Р
22.05.2018
13:42:43
Суть антипаттерна в том чтобы везде вместо простых классов акторы использовать.

Andrey
22.05.2018
13:42:48
Да вообще звучит как сектантские рассказы...
Если не использвать акторы как акторы, то как их использовать?

Р
22.05.2018
13:43:30
Как классы, только посылать сообщения вместо методов.

Andrey
22.05.2018
13:43:43
Так это и есть суть акторной системы вообще-то

Andrey
22.05.2018
13:43:43
Это ж идеальный ооп
:D

Admin
ERROR: S client not available

Google

Andrey
22.05.2018
13:43:54
а не все вот эти ваши инкапсуляции и полиморфизмы

M
22.05.2018
13:45:55
хранить состояние как statefull бины ejb ?

Andrey
22.05.2018
13:47:33
Тема достойная понва

Р
22.05.2018
13:47:56
Хранить состояние в акторе - это окей, ну если знаешь что делаешь, как минимум. Проблема в том что люди стейтлесс акторы делают вместо классов, а ещё бизнес логику туда пихают.

Andrey
22.05.2018
13:48:55

M
22.05.2018
13:49:25
чтобы выступал вместо jms в джаве просто слал сообщения :D

Andrey
22.05.2018
13:49:29
Звучит как "Они в джаве совсем осотонели, создают классы и пихают в них логику"

Alexandr
22.05.2018
13:51:00

Р
22.05.2018
13:51:14

Andrey
22.05.2018
13:52:19

Alexandr
22.05.2018
13:54:07
Выдернуть параметры их хедеров и query string'a, вызвать с ними 1-2 метода класса и вернуть результат - вряд ли это бизнес-логика ?

Andrey
22.05.2018
13:54:48

Alexandr
22.05.2018
13:55:23
Ну, я думаю, до маразма не стоит доходить. Минимальная логика маршрутизации вызовов будет в любом случае

Р
22.05.2018
13:55:31

Alexandr
22.05.2018
13:56:10
> Я бы это в акторы тоже не стал пихать.
Я отвечал на вопрос про контроллеры

Andrey
22.05.2018
13:56:30
А то что часть кода не выносят из актора, так это чисто опыт. На нчальном этапе все так пишут, пока не поймут как код организовывть удобно.
Никакой проблемы акки тут нет и тем более нет "как в спинге" ибо там тоже с опытом приходишь к более корретной организации кода, а поначалу "логика в контроллераз" )

Р
22.05.2018
13:57:51
Это довольно типичный паттерн. Люди писали на Спринге свои бинчики, потом узнали про Акку и решили что акторы - это замена бинам :D

Andrey
22.05.2018
14:00:00
Да ну, опять откровения П о смысле жизни? Откуда взято "Обычно акку используют вместо спринга" ? я вот очень мало таких проектов видел. Логика разбиения кода на поверхности лежит, а в акку и скалу все таки большинство уже с опытом приходит

Google

Р
22.05.2018
14:01:35
/toxic

Aleksei
22.05.2018
14:26:52
т.е. народ тупо тыкает на токсик и потом удаляет сообщеньки? =)))

Nikolay
22.05.2018
14:27:24

Grigory
22.05.2018
14:27:24
икутест

Wystan
22.05.2018
14:27:52
Парниша пытается

Henadz
22.05.2018
15:23:02
такой вопрос, есть у меня ворох файлов аля .class, причём для одного Скала класса создалась куча всяких $$anonfun$$ файлов. Есть ли какой-нить удобоворимый способ воссоздать из этих файлов скаловский или джавовский код?

Alexandr
22.05.2018
15:24:11
javap не выдаст java?