Blog
バッチではじめてAkkaを使ってみた
こんにちは! Smalgo の阿川です。
先日、Spray, Akka, Scala といった技術のノウハウを共有しましょう、という趣旨の社内勉強会で発表する機会がありましたので、そのスライドを公開します。
スライド
[slideshare id=42986757&doc=akkameeting2014-11-12refined-141224053640-conversion-gate01]
Actor と Future
僕は Scala 歴はこの時点で 2 ヶ月ほどで scala.concurrent.Future
を使ったプログラミングの経験も浅いものでしたので、Akka の Actor
と Future
の使い分けにはかなり悩みました。最初は全て Actor
で実装しようとしていたのですが、そのためにはアクターモデルそのものや Typed Actor など、学習しなければならない要素が多すぎると判断して、最終的にスライドにある方針に落ち着きました。
この方針に決めてからは設計で悩むことも減りサクサクと実装が進みましたので、これからはじめて Akka を触ってみようという方の最初の指針としてお勧めです。
まとめ
今回はバッチで Akka を使ってみて、状態を持つオブジェクトの並行処理が煩雑にならず綺麗に記述できたと感じました。Scala 自身が持つ関数型言語の性質、特に immutability (不変性)とあわせると、複雑な並行処理を安全に記述できる強力な手段になりそうです。
アクターモデルの本流は Erlang だと(勝手に)思っていますので、より理解を深めるために次は Erlang に手を出してみようかと思っています。
Author
koji