Elixir ユーザーのための OTP 入門 (Shinjuku.ex #10)
- OTP とは何か
- 「よくわからないけど使ったほうがいいっぽい」から「なぜ使うのかを意識して使う」になるための導入(になるといいな)
- 詳細な API とかには触れません
twitter: @mururururu (ru * 4) github: @mururu (ru * 2)
HPC系の研究室の M1。 時雨堂というところで Erlang を書いてます。
一応以下のような人が対象です。
- Elixir でちょっとでも何か書いたことある人
- Elixir の「プロセス」がどんなものかを知っている人
OTP Design Principles http://www.erlang.org/doc/design_principles/des_princ.html
-
Erlang でシステムを設計するときの原則
-
それに従って実装するためのライブラリ群
-
Elixir でも同様
-
スーパーバイザツリー
-
ワーカーとスーパーバイザからなる
-
ワーカーは実際に仕事を行うプロセス
-
スーパーバイザは設定に基づきワーカー(もしくは他のスーパーバイザ)を監視し問題が合った場合に再起動したり
- スーパーバイザやワーカーでよくあるパターンを抜き出したもの
- GenServer
- Agent
- GenEvent
- Task
- Supervisor
- Application
(デモ)
- GenServer
- Agent
- Task
- GenEvent
- Supervisor
- Application
- OTP は Elixir でシステムを設計する際に頻出するパターンをまとめたもの
- どのようなスーパーバイザツリーになるかという意識はとても大事
- Enjoy OTP!
おまけ
https://gist.github.com/mururu/17c489dac3d6b2b24528