Elixir経験者にオススメの書籍

プログラミングElixir 第2版

世界的に有名な「達人プログラマー」「RailsによるアジャイルWebアプリケーション開発」の著者Dave Thomasによる、Elixir習得のバイブルです

単なるプログラミング入門本を越えた、楽しく、情熱的で実践的、そしてワビサビな1冊になります

本書は、Elixir 1.6をベースに書かれていますが、2023年2月時点の最新バージョンであるElixir 1.14でも動作し、今後のElixirでも通用する内容となっています

なお、「はじめに」でも書かれている通り、全ての文法やライブラリを羅列するものでは無いため、Elixir School等との併用がオススメです

Programming Phoenix Liveview

LiveViewの基本から、ゲーム開発や架空の会社におけるシステム開発を題材に、実践的な内容が展開されます

LiveViewでの状態管理と、「assigns」で定義される画面状態の引き渡しパラメータ、それらを使うmount等の解説が一通りあります

CRUD画面を生成する「phx.gen.live」の説明と、それに伴うContextやEctoの説明もあります

なお本書の電子書籍版は、Phoenixのバージョンアップに合わせてアップデートされています

Concurrent Data Processing in Elixir

Elixirの得意領域である「並行データ処理」を担う下記機能について、図解とコードが揃った傑作です

  • Task:非同期で走るワーカプロセス
  • GenServer:同期/非同期のどちらでも使えるサーバプロセス
  • GenStage:データ蓄積と放出のパイプラインを構成するバックプレッシャー機構
  • Flow:Elixirでデータ処理を司るEnumをマルチコア並列化
  • Broadway:ビッグデータのストリーミング(Amazon SQSやKafka、Cloud Pub/Subとも接続可能)

他にも、プロセスを監視し、ダウン時に再起動を行うSupervisor/DynamicSupervisorの活用方法についても詳細な解説があります

Elixirへのいざない

Mix/Phoenix/LiveView/Nervesとオールラウンドに動くコードで解説しています

特に、国内ではいち早くLiveViewとNervesについて触れた書籍です

なお、発売以降にPhoenix/LiveView/Nervesは多くのアップデートが入っているので、参考時にはご注意ください