エムスリーエンジニアリンググループの冨岡です。この記事はエムスリーAdvent Calendar及びScala Advent Calendarの20日目の記事です。
- はじめに
- Future の特徴
- Future の長所
- 標準ライブラリで提供されている
- 抽象化の戦略がわかりやすい
- Future の長所
- Future の短所
- 処理を即時実行する
- 結果が否応なしにメモ化される
- ExecutionContextが必要なシーンが多い
- 参照透過な作用
- (コラム)プログラムをプログラムすることについて
- 3rd party の Pure Effect ライブラリの紹介
- Cats Effect: IO
- Monix: Task
- ZIO
- まとめ
- 参照透過性について補足
- We're hiring!
はじめに
Scalaでは、作用、特に非同期での作用を扱うためのデータ型として scala.concurrent.Future が提供されています。これは手軽につかえて便利である一方、使いづらい点もいくつかあります。この記事ではそれらFutureの使いづらい点に触れ、それに対する関数型プログラミングでのアプローチと、それを実現する3rd partyライブラリをいくつか紹介します。
続きを読む