Skip to content

Instantly share code, notes, and snippets.

@mururu mururu/otp.md
Last active Aug 29, 2015

Embed
What would you like to do?
shinjuku.ex #10 発表資料

Elixir ユーザーのための OTP 入門 (Shinjuku.ex #10)

話すこと

  • OTP とは何か
  • 「よくわからないけど使ったほうがいいっぽい」から「なぜ使うのかを意識して使う」になるための導入(になるといいな)
  • 詳細な API とかには触れません

だれ?

HPC系の研究室の M1

対象

一応以下のような人が対象です。

  • Elixir でちょっとでも何か書いたことある人
  • Elixir の「プロセス」がどんなものかを知っている人
  • Elixir (Erlang) のコードを全く見たことないとつらいかも

Elixir アプリケーションの設計

  • プロセスってどんな単位で作るの?
  • そもそも Elixir の設計って?
  • コード読もう

OTP とは何か

OTP Design Principles http://www.erlang.org/doc/design_principles/des_princ.html

  • Erlang でシステムを設計するときの原則
  • それに従って実装するためのライブラリ群
  • Elixir でも同様
  • スーパーバイザツリー
  • ワーカーとスーパーバイザからなる
  • ワーカーは実際に仕事を行うプロセス
  • スーパーバイザは設定に基づきワーカー(もしくは他のスーパーバイザ)を監視し問題が合った場合に再起動したり

ビヘイビア

  • スーパーバイザやワーカーでよくあるパターンを抜き出したもの
  • GenServer : サーバー
  • Agent : 状態をもつやつ
  • GenEvent : イベントハンドリング
  • Task : 他のプロセスとのやりとりというよりただ仕事をこなすやつ
  • Supervisor : プロセスの監視
  • Application : 始点

KVS を作ってみよう

(デモ)

もう一度ビヘイビアの種類

  • スーパーバイザやワーカーでよくあるパターンを抜き出したもの
  • GenServer : サーバー
  • Agent : 状態をもつやつ
  • GenEvent : イベントハンドリング
  • Task : 他のプロセスとのやりとりというよりただ仕事をこなすやつ
  • Supervisor : プロセスの監視
  • Application : 始点

まとめ

  • OTP は Elixir でシステムを設計する際に頻出するパターンをまとめたもの
  • スーパーバイザツリーを設計する
  • Enjoy OTP!
@mururu

This comment has been minimized.

Copy link
Owner Author

commented Jun 2, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.