суббота, 1 сентября 2018 г.

[prog.actors] Прочитал тут небольшую брошюрку "Designing Reactive Systems" от разработчиков Akka

Разработчики Akka время от времени публикуют небольшие книжонки полурекламного-полуобучающего содержания. Одна из них, а именно "Designing Reactive Systems" оказалась вполне себе даже ничего. Если кто-то имеет самое поверхностное впечатление о Модели Акторов и хочет погрузиться в тему чуть-чуть глубже, дабы понять, нужно ли вообще в Модель Акторов вкладываться или нет, эта брошюра вполне может оказаться полезной. Тем более, что не смотря на обычный изрядный налет маркетингового бла-бла-бла, она действительно дает нормальное и понятное описание достоинств аторов в практическом плане. Без теоретизирования и ухода в абстрактный Computer Science.

Что лично меня откровенно порадовало по ходу чтения, так это то, что в книге я находил все те же тезисы, которые сам рассказывал в своих докладах про модель акторов (как на CoreHard-ах, так и на недавнем митапе в Питере). В частности, тезисы про отказоустойчивость и закладываемые в акторов возможности по преодолению тех или иных проблем в процессе их работы. А так же, что я в чужих материалах встретил чуть ли не в первые, про активное использование таймеров в сочетании с шаблонами. Ведь про то, что таймеры являются одним из признаков того, что акторы применимы в конкретной задаче, и о том, что таймеры и акторы очень хорошо дружат друг с другом, я рассказывал чуть меньше года назад на CoreHard Autumn 2017.

Так что еще раз повторюсь, брошюра на удивление толковая. По крайней мере большая ее часть. Так что если кто-то только слышал краем уха про акторов, но хочет получить чуть более развернутое представление, то вполне можно эту книжку прочитать. Благо она небольшая и бесплатная. И хоть ее написали люди, плотно работающие с JVM, привязки к Java/Scala в ней нет. То, что там описано, сохраняет актуальность вне зависимости от языка программирования.

PS. Хотя упор на дерево супервизоров -- это не есть характерная особенность Модели Акторов. Можно и по-другому, SObjectizer тому наглядная демонстрация. А в низкоуровневых языках, таких как C++, польза от супервизоров вообще сомнительна.

Комментариев нет: