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