О чем это все?
Это все про змейку. Все прекрасно помнят, что такое змейка: на прямоугольном поле движется змея. Находит еду — вырастает в длине, находит себя или границу поля — умирает. А пользователь может только слать команды: влево, вправо, вверх, вниз.
Я решил добавить сюда немного экшна и заставить змею убегать от пакманов. И все это на акторах!
Поэтому сегодня я на примере змейки расскажу о том, как построить модель акторов с помощью MailboxProcessor
из стандартной библиотеки, на какие моменты обратить внимание, и какие подводные камни вас могут ожидать.
Код, написанный здесь, не идеален, может нарушать какие-то принципы и может быть написан лучше. Но если вы новичок и хотите разобраться с мейлбоксами — надеюсь, эта статья вам поможет.
Если вы про мейлбоксы все знаете и без меня — вам тут может быть скучно.
Почему акторы?
Ради практики. Про модель акторов я читал, смотрел видео, мне все понравилось, но сам не пробовал. Теперь попробовал.
Несмотря на то, что по сути выбрал технологию ради технологии, концепция очень удачно легла на эту задачу.
Почему MailboxProcessor, а не, например, Akka.net?
Для моей задачи акка — это из орбитальной станции по воробьям, MailboxProcessor
гораздо проще, да и входит в стандартную библиотеку, так что никаких пакетов подключать не нужно.
Читать полностью »