
Nikolay
24.06.2017
21:22:42

Alexander
24.06.2017
21:37:38
будет проще ответить, если уточнишь проблему/задачу
Да меня напрягает обилие
var proposalMatcher: Option[ActorRef] = None
var requestContext: Option[Context] = None
var originMessage: Option[NewMessage] = None
и потом (requestContext |@| originMessage) map ..

Nikolay
24.06.2017
21:38:27
через context.become не получается?
ну, в каких-то случаях проще var использовать, в каких-то - context.become(otherBehavior(updatedState))

Google

Nikolay
24.06.2017
21:41:02
originMessage: Option[NewMessage] - не выглядит как стейт на первый взгляд)

Alexander
24.06.2017
21:43:14
Через become совсем мешанина получается. Пока страдаю с опшнами.

Nikolay
24.06.2017
21:43:29
почему мешанина?
можно же описать стейт структурой данных, и менять части через методы
никто не заставляет делать receive метод с 5 параметрами
один параметр - state: State, который ты можешь каким-то образом менять - через копирование например
кто пользуется quill, можете подсказать? при компиляции в консоль выводятся info сообщения с sql запросами. как это настроить для Idea?

Sergey
24.06.2017
22:50:13

Alexander
24.06.2017
23:57:49

Nikolay
24.06.2017
23:59:12
Композить например?

Alexander
25.06.2017
00:34:47
Композить например?
val part: PartialFunction[Any,Unit] = {
case "next" =>
next()
}
context.become(receive andThen part)

Nikita
25.06.2017
01:36:42

A
25.06.2017
02:02:50
ребят, could not find implicit value for parameter e: org.scalacheck.Arbitrary[Example]
wtf?

Google

A
25.06.2017
02:09:44
мну нужно генерировать все возможные варианты кейс класса кокторый содержит другие кейс классы

Gregory
25.06.2017
06:13:22
Шёл бы ты отсюда

Pavel
25.06.2017
07:12:45

Юрий
25.06.2017
07:22:42
вот она - известность

Alexandr
25.06.2017
07:24:22
"Респект и уважение" (с)

Aleksey
25.06.2017
07:27:16
Ыыы

Nick
25.06.2017
07:38:15
Это он сам эту вакансию создал)

Ivan
25.06.2017
07:39:39
через vpn

Needle
25.06.2017
07:40:52
vpn ("эта организация запрещена в России")

Aleksey
25.06.2017
07:47:57
Скорее все вот этот чел создал https://github.com/PhilAndrew
Он активно юзает королев у себя

Nick
25.06.2017
07:52:04

Alexandr
25.06.2017
07:54:09

Nikolay
25.06.2017
07:58:15

Vladimir
25.06.2017
08:12:26

Pavel
25.06.2017
08:56:46
так это, я скоро за пушку буду требовать процент)
осталось только либу днище сделать
dniwe

Kirill
25.06.2017
08:59:25
Алексей, открывай шампанское, на королев уже вакансии есть

Alexey
25.06.2017
09:33:03

Google

Nikolay
25.06.2017
09:33:41
насколько понимаю, gif-ка на сайте quill сделана в scala IDE?
а то как-то печально выглядит, поскольку фича довольно крутая

Roman
25.06.2017
09:45:25
А почему бы не заворачивать стейт актора в FSM? Логика становится как на ладони, да и все костыли с var и option пропадают

Nikolay
25.06.2017
09:48:08
Есть презентация автора моникса, где затрагивается вопрос стейта https://monix.io/public/pdfs/Akka-Monix.pdf

Arthur
25.06.2017
09:48:13
там в новых акторах акки var не нужен будет

Alexander
25.06.2017
09:48:46
в typed что-ли?

Arthur
25.06.2017
09:48:56
+

Alexander
25.06.2017
09:49:39
а как стэйт внутренний мутируется?

Arthur
25.06.2017
09:50:36
как в редаксе/ерланге итд
у тебя есть функция которая принимает стейт и команду
и возвращает стейт измененный

Nikolay
25.06.2017
09:50:50
функция всегда возвращает новый стейт

Nikolay
25.06.2017
09:50:58
или тот же

Arthur
25.06.2017
09:51:04

Roman
25.06.2017
09:51:31
Ну когда они перестанут быть experimental, тогда и можно будет переходить. А то я помню, как давным давно попробовал сделать микросервис на стримах во времена akka-streams-experimental-M1, так мне обе ноги оторвало

Nikolay
25.06.2017
09:51:34
а, там не было вопроса)

Alexander
25.06.2017
09:55:54
ну по сути var переместился в библиотечный код

Vadim
25.06.2017
10:11:25
Дык тайпед акторы уже вышли из experimental

Daniel
25.06.2017
10:12:01
нет, там хватает проблем
например, не работает с remote

Google

Friedrich
25.06.2017
10:12:17
Значит, либо и правда экспериментальный модуль, либо просто забросили и всем пофиг.

Admin
ERROR: S client not available

Friedrich
25.06.2017
10:12:50
В обоих случаях нужно использовать с осторожностью, пожалуй.

Vadim
25.06.2017
10:18:18
Да я перепутал

Andrey
25.06.2017
10:43:38
Господа, а как вы в акка персистенс с разрастающимся стейтом боретесь? Кроме шардинга
типа var users: List[User] = ...
Который постоянно увеличивается

Фрилансер
25.06.2017
10:52:08

Nikolay
25.06.2017
11:02:47
а почему не должно?

Alexey
25.06.2017
11:05:04
Из-за дырки полагаю
В java такое тоже прокатывает с вопросом

Nikolay
25.06.2017
11:06:13
если ты про то что при вызове list не указан тип T - он выводится как Nothing
а так плохой код - не пиши такое в продакшн
в рантайме еще упадет
@ def foo[T <: List[_]: ClassTag]: T = { println(s"the type is: ${classTag[T]}"); ??? }
defined function foo
@ foo
the type is: Nothing
scala.NotImplementedError: an implementation is missing
scala.Predef$.$qmark$qmark$qmark(Predef.scala:284)
ammonite.$sess.cmd40$.foo(cmd40.sc:1)
ammonite.$sess.cmd41$.<init>(cmd41.sc:1)
ammonite.$sess.cmd41$.<clinit>(cmd41.sc)

Kirill
25.06.2017
11:10:13
Это же из-за того, что string это list char-ов?

Dmitry
25.06.2017
11:10:55
Потому что там T Nothing

Igor
25.06.2017
11:11:19
Nothing is a subtype of every other type (including Null);

Dmitry
25.06.2017
11:11:33
Рили?

Google

Nikolay
25.06.2017
11:11:39
Nothing-ness
https://prashanthbabu.gitbooks.io/scala_notes/content/Scala_TypeSystem_01.png

Фрилансер
25.06.2017
11:19:46

Nikolay
25.06.2017
11:22:20
type erasure же

Dmitry
25.06.2017
11:23:18

Nikolay
25.06.2017
11:23:21
в любом случае когда ты вызываешь без тайп параметра метод list, тип T - это Nothing

Igor
25.06.2017
11:24:00
компилируется оно именно потому, что есть Nothing - подтип и списка, и строки
"пруф" у меня не компилируется =)

Фрилансер
25.06.2017
11:24:28

Nikolay
25.06.2017
11:25:05
не знаю что там