@scala_ru

Страница 762 из 1499
Nikolay
24.06.2017
21:22:42
Егор Де Гоес
<no-sarcasm>Mikhail Sabin</no-sarcasm>

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
val part: PartialFunction[Any,Unit] = { case "next" => next() } context.become(receive andThen part)
И все равно не вижу преград для стейта и become

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
или тот же

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
Дык тайпед акторы уже вышли из experimental
Ну чёт в документации до сих пор пометка стоит: http://doc.akka.io/docs/akka/current/scala/typed.html

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

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
Потому что там T Nothing
Это не при чем





Nikolay
25.06.2017
11:22:20
type erasure же

Dmitry
25.06.2017
11:23:18
type erasure же
Но это же не затрет сам лист

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

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

"пруф" у меня не компилируется =)

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

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