Pull to refresh

Akka.NET Bootcamp

Reading time4 min
Views13K
Original author: Aaron Stannard


Добро пожаловать в 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 и в процессе будем изучать фундаментальные вещи.

В первой части мы узнаем:
  1. Как создать вашу собственную ActorSystem и акторы.
  2. Как отправлять сообщения акторов и как обрабатывать различные типы сообщений.
  3. Как использовать Props и ActorRef в построении слабосвязанных систем
  4. Как использовать пути акторов, их адреса, и ActorSelection для отправки сообщений акторам
  5. Как создать потомков акторов (child actors) и иерархию акторов, и как контролировать потомков используя SupervisionStrategy
  6. Как использовать жизненный цикл актора чтобы управлять поведением запуска, выключения и перезапуска актора


Часть 2


Во второй части мы приблизимся к особенностям Akka.NET для построения более сложных приложений, чем мы делали в первой части.

Во второй части мы узнаем:

  1. Как использовать HOCON настройки для конфигурации ваших акторов через App.config и Web.config
  2. Как настроить Dispathcer ваших акторов для запуска их в UI потоке, чтобы акторы могли осуществлять операции непосредственно на UI элементы без необходимости переключения контекста
  3. Как обрабатывать более сложные типы сообщений используя сопоставление с образцом (pattern matching) и ReceiveActor
  4. Как использовать Scheduler для отправки recurring-сообщений акторам
  5. Как использовать паттерн отправитель-подписчик (Publish-subscribe (pub-sub) pattern) между акторами
  6. Как и зачем переключать поведения акторов в рантайме
  7. Как использовать Stash для сохранения сообщений для последующей обработки


Часть 3


В третьей части мы узнаем как использовать акторы для параллелизма и масштабирования используя Octokit и данные из Github!

В третьей части мы узнаем:

  1. Как выполнять работу асинхронно внутри ваших акторов используя PipeTo
  2. Как использовать Ask внутри актора для ожидания ответа на ваши сообщения
  3. Как использовать ReceiveTimeout для ответов от других акторов
  4. Как использовать Group маршрутизаторы для разделения работы между вашими акторами
  5. Как использовать Pool маршрутизаторы для автоматического создания и управления пулами акторов (pools of actors)
  6. Как использовать HOCON для конфигурации ваших маршрутизаторов


С чего начать


Вот как Akka.NET Bootcamp работает.

Используйте Github, чтобы сделать жизнь проще


Этот Github-репозиторий содержит Visual Studio решения и другие элементы необходимые вам чтобы закончить учебный курс.

Таким образом, если вы хотите продолжить учебный курс мы рекомендуем сделать следующее:

  1. Зарегистрируйтесь на Github, если вы еще не сделали этого.
  2. Форкните этот репозиторий и склонируйте ваш форк на локальную машину.
  3. Пока вы будете выполнять уроки, оставьте вкладку веб-браузера открытой на 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 документацию

Инструменты / предварительные условия


Этот курс ожидает от вас:

  1. Некоторый опыт в программировании и знакомы с C#
  2. Github аккаунт и базовые знания git
  3. Вы используете Visual Studio (она теперь бесплатна!)


О Petabridge




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

Petabridge также предлагает Akka.NET консультации и тренинги.
Tags:
Hubs:
+4
Comments0

Articles

Change theme settings