Scala: Вы знаете какие-нибудь продвинутые актерские документы / учебные пособия? - PullRequest
2 голосов
/ 01 февраля 2012

Я работал со Scala в течение некоторого времени, и я начал более глубоко изучать параллелизм. С моим знанием Java-параллелизма я достиг простых вещей, которые я должен был сделать, но я пытаюсь немного больше погрузиться в мир актеров.

Проблема в том, что я не могу найти более продвинутый учебник или документы, чем этот:

http://docs.scala -lang.org / Overviews / core / актеры.html (довольно хорошо, кстати)

Конечно, я прочитал API, но мне хотелось бы иметь несколько примеров кода, передовой опыт, рекомендации и т. Д.

ПРИМЕЧАНИЕ: Я говорю о документации о вещах, не включенных в основные документы. Я знаю основные понятия актеров. Также я прочитал эти книги:

Программирование в Scala: подробное пошаговое руководство, 2-е издание

Программирование Scala: Масштабируемость = Функциональное программирование + Объекты

РЕДАКТИРОВАТЬ: Спасибо за все ответы. Я знаю о книгах об актерах, но я ищу бесплатные.

Ответы [ 3 ]

3 голосов
/ 01 февраля 2012

Моей отправной точкой было чтение некоторых уроков по эрлангскому языку, таких как Learn You Some Erlang for Great Good .Эрланг был вокруг некоторое время, и есть много учебников, книг, презентаций.В основе Erlang лежит модель актора, т.е. передача сообщений между актерами без общего доступа (называемые процессами в Erlang), так что это хороший способ разобраться в концепциях.

Затем, когда вы обращаетесь к Scala за синтаксисом, используйте Akka, потому что его API намного ближе к Erlang, чем основные актеры Scala.По сути, актеры в Scala, использующие Akka, очень просты.Реальная задача состоит в том, чтобы взять дизайн и пересмотреть его с точки зрения участников, не имеющих общих данных вообще.В Scala есть соблазн просто использовать некоторые библиотеки Java и какой-то объектно-ориентированный дизайн и в итоге получить что-то, что не совсем совместимо с актерами.

Я предлагаю начать с актерской точки зрения, прояснить работоспособный дизайн, а затем усовершенствовать его с помощью классов Java и объектно-ориентированных методов.Например, в моем первом приложении на основе Akka я использовал обычную библиотеку Java AMQP для приема сообщений, а не абстракцию Akka, потому что класс Java был прост, и я уже был близко знаком с AMQP.

2 голосов
/ 01 февраля 2012

Существует также эта книга . Он довольно хорошо написан, хотя когда я его читал, он совсем не говорил об Akka, что немного неловко, поскольку Akka используется много . На самом деле, я не удивлюсь, если в ближайшем будущем произойдет сближение между собственными актерами Скалы и актерами Акки (к модели Акки).

Actors in Scala

1 голос
/ 01 февраля 2012

Здесь - небольшой пример кода, который я написал, который решает одну из задач Project Euler с использованием актеров Akka. Он использует акторы, подобные операции map / lower, где работники параллельно обрабатывают фрагменты данных и отправляют свои результаты сборщику. Все это асинхронно и может (гипотетически) масштабироваться до тысяч или миллионов узлов.

Код прошел несколько итераций, так как я узнал больше о том, как использовать Actors (и я все еще учусь!), Поэтому просмотр предыдущих версий может дать вам некоторое представление о том, как я пришел к текущему дизайну.

...