
Добро пожаловать в Akka.NET Bootcamp. Это бесплатный курс для самостоятельного обучения, подготовленный парнями из Petabridge.
Учебный курс разделен на три части, в течение которых вы научитесь создавать полнофункциональные, реальные программы, используя Akka.NET акторы и множество других частей из Akka.NET framework.
Мы начнем с некоторых основных акторов и постепенно будем подходить к большим и более сложным примерам.
Этот курс для самостоятельного обучения — вы можете выполнять его в любом темпе на ваше усмотрение. Вы можете подписаться здесь и каждый день получать по одному уроку Akka.NET на ваш email (на английском языке — от перев.) если хотите.
ПРИМЕЧАНИЕ: На текущий момент учебный курс рассчитан на использование C# в качестве языка программирования.
Мы намерены добавить поддержку F# в будущем
(Также мы принимаем F# pull-реквесты)
Что вы узнаете
В учебном курсе Akka.NET вы изучите, как использовать акторы Akka.NET для создания реактивных, параллельных систем. Вы узнаете, как создать приложения, которые, возможно, казалось невозможным или очень-очень трудным до изучения Akka.NET. После учебного курса вы будете чувствовать себя более уверенно в решении сложных и больших проблем, чем раньше.
Часть 1
В первой части вы изучите основы о том, как модель акторов и Akka.NET работают.
В *NIX системах есть tail утилита, встроенный мониторинг изменений в файле, которую Windows не имеет. Мы пересоздадим tail для Windows и в процессе будем изучать фундаментальные вещи.
В первой части мы узнаем:
- Как создать вашу собственную ActorSystem и акторы.
- Как отправлять сообщения акторов и как обрабатывать различные типы сообщений.
- Как использовать Props и ActorRef в построении слабосвязанных систем
- Как использовать пути акторов, их адреса, и ActorSelection для отправки сообщений акторам
- Как создать потомков акторов (child actors) и иерархию акторов, и как контролировать потомков используя SupervisionStrategy
- Как использовать жизненный цикл актора чтобы управлять поведением запуска, выключения и перезапуска актора
Часть 2
Во второй части мы приблизимся к особенностям Akka.NET для построения более сложных приложений, чем мы делали в первой части.
Во второй части мы узнаем:
- Как использовать HOCON настройки для конфигурации ваших акторов через App.config и Web.config
- Как настроить Dispathcer ваших акторов для запуска их в UI потоке, чтобы акторы могли осуществлять операции непосредственно на UI элементы без необходимости переключения контекста
- Как обрабатывать более сложные типы сообщений используя сопоставление с образцом (pattern matching) и ReceiveActor
- Как использовать Scheduler для отправки recurring-сообщений акторам
- Как использовать паттерн отправитель-подписчик (Publish-subscribe (pub-sub) pattern) между акторами
- Как и зачем переключать поведения акторов в рантайме
- Как использовать Stash для сохранения сообщений для последующей обработки
Часть 3
В третьей части мы узнаем как использовать акторы для параллелизма и масштабирования используя Octokit и данные из Github!
В третьей части мы узнаем:
- Как выполнять работу асинхронно внутри ваших акторов используя PipeTo
- Как использовать Ask внутри актора для ожидания ответа на ваши сообщения
- Как использовать ReceiveTimeout для ответов от других акторов
- Как использовать Group маршрутизаторы для разделения работы между вашими акторами
- Как использовать Pool маршрутизаторы для автоматического создания и управления пулами акторов (pools of actors)
- Как использовать HOCON для конфигурации ваших маршрутизаторов
С чего начать
Вот как Akka.NET Bootcamp работает.
Используйте Github, чтобы сделать жизнь проще
Этот Github-репозиторий содержит Visual Studio решения и другие элементы необходимые вам чтобы закончить учебный курс.
Таким образом, если вы хотите продолжить учебный курс мы рекомендуем сделать следующее:
- Зарегистрируйтесь на Github, если вы еще не сделали этого.
- Форкните этот репозиторий и склонируйте ваш форк на локальную машину.
- Пока вы будете выполнять уроки, оставьте вкладку веб-браузера открытой на Akka.NET Bootcamp ReadMes, так вы сможете читать все инструкции четко и легко.
Cтруктура Bootcamp
Akka.NET Bootcamp состоит из 3 модулей:
- Часть 1 — начальный уровень Akka.NET
- Часть 2 — средний уровень Akka.NET
- Часть 3 — продвинутый уровень Akka.NET
Каждый модуль содержит следующую структуру (используя Часть 1 в качестве примера:)
src\Unit1\README.MD - table of contents and instructions for the module
src\Unit1\DoThis\ - contains the .SLN and project files that you will use through all lessons
-- lesson 1
src\Unit1\Lesson1\README.MD - README explaining lesson1
src\Unit1\Lesson1\DoThis\ - C# classes, images, text files, and other junk you'll need to complete lesson1
src\Unit1\Lesson1\Completed\ - Got stuck on lesson1? This folder shows the "expected" output for the lesson
-- repeat for all lessons
Начните с первого урока в каждой части и следуйте инструкциям описанных в README (или здесь на хабре :) — от перев.).
Структура урока
Каждый Akka.NET Bootcamp урок содержит описание которое объясняет следующее:
- Akka.NET концепции и инструменты, которые вы будете использовать в уроке, с ссылками на любую релевантную документацию или пример.
- Пошаговые инструкции того как изменить .NET проект внутри Unit-[Num]/DoThis/ в соответствии с ожидаемым результатом в конце каждого урока.
- Если вы застряли следуя пошаговым инструкциям, в каждом уроке есть папка /Completed/, которая показывает полный законченный исходный код. Вы можете сравнить свою реализацию с этой и понять что вам необходимо изменить
Когда вы выполняете уроки...
Несколько вещей, которые надо иметь ввиду когда вы выполняете пошаговые инструкции:
- Не просто копируйте код представленный в уроке. Вы запомните и изучите все встроенные функции Akka.NET если вы напечатаете самостоятельно представленный код. Кинестетитеское обучение (Kinesthetic learning) FTW!
- Вам, возможно, потребуется заполнить некоторые пробелы во время изучения индивидуальных уроков Чтобы помочь вам в обучении, Akka.NET включает в себя некоторые упражнения для вас. — Если вы чувствуете себя потерянными, всегда проверьте содержание папки /Completed для этого урока
- Не бойтесь задавать вопросы. Вы можете связаться с Petabridge и Akka.NET командами в нашем Gitter чате
Документация
Мы будем давать разъяснения всех ключевых понятий в течение каждого урока, но, конечно же, вы должны поместить в закладки (и не стесняться их использовать!), используя Akka.NET документацию
Инструменты / предварительные условия
Этот курс ожидает от вас:
- Некоторый опыт в программировании и знакомы с C#
- Github аккаунт и базовые знания git
- Вы используете Visual Studio (она теперь бесплатна!)
О Petabridge

Petabridge — компания, созданная специально, чтобы сделать жизнь разработчиков .NET проще для построения распределенных приложений.
Petabridge также предлагает Akka.NET консультации и тренинги.