Skip to content

Instantly share code, notes, and snippets.

@mururu
Last active September 26, 2022 18:21
Show Gist options
  • Select an option

  • Save mururu/371cb188a477e15423b4 to your computer and use it in GitHub Desktop.

Select an option

Save mururu/371cb188a477e15423b4 to your computer and use it in GitHub Desktop.

Revisions

  1. Yuki Ito revised this gist Jun 2, 2015. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion otp.md
    Original file line number Diff line number Diff line change
    @@ -35,7 +35,6 @@ http://www.erlang.org/doc/design_principles/des_princ.html
    * Erlang でシステムを設計するときの原則
    * それに従って実装するためのライブラリ群
    * Elixir でも同様

    * スーパーバイザツリー
    * ワーカーとスーパーバイザからなる
    * ワーカーは実際に仕事を行うプロセス
  2. Yuki Ito revised this gist Jun 2, 2015. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion otp.md
    Original file line number Diff line number Diff line change
    @@ -25,7 +25,6 @@ HPC系の研究室の M1

    * プロセスってどんな単位で作るの?
    * そもそも Elixir の設計って?

    * コード読もう

    ## OTP とは何か
  3. Yuki Ito revised this gist Jun 2, 2015. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion otp.md
    Original file line number Diff line number Diff line change
    @@ -23,8 +23,9 @@ HPC系の研究室の M1

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

    * プロセスってどんな単位で起動するの
    * プロセスってどんな単位で作るの
    * そもそも Elixir の設計って?

    * コード読もう

    ## OTP とは何か
  4. Yuki Ito revised this gist Jun 2, 2015. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion otp.md
    Original file line number Diff line number Diff line change
    @@ -11,14 +11,15 @@
    * twitter: [@mururururu](https://twitter.com/mururururu)
    * github: [@mururu](https://github.com/mururu)

    HPC系の研究室の M1
    HPC系の研究室の M1

    ## 対象

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

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

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

  5. Yuki Ito revised this gist Jun 2, 2015. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions otp.md
    Original file line number Diff line number Diff line change
    @@ -8,8 +8,8 @@

    ## だれ?

    * twitter: [@mururururu](https://twitter.com/mururururu) (ru * 4)
    * github: [@mururu](https://github.com/mururu) (ru * 2)
    * twitter: [@mururururu](https://twitter.com/mururururu)
    * github: [@mururu](https://github.com/mururu)

    HPC系の研究室の M1。

  6. Yuki Ito revised this gist Jun 2, 2015. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions otp.md
    Original file line number Diff line number Diff line change
    @@ -8,8 +8,8 @@

    ## だれ?

    * twitter: @mururururu (ru * 4)
    * github: @mururu (ru * 2)
    * twitter: [@mururururu](https://twitter.com/mururururu) (ru * 4)
    * github: [@mururu](https://github.com/mururu) (ru * 2)

    HPC系の研究室の M1。

  7. Yuki Ito revised this gist Jun 2, 2015. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions otp.md
    Original file line number Diff line number Diff line change
    @@ -8,8 +8,8 @@

    ## だれ?

    twitter: @mururururu (ru * 4)
    github: @mururu (ru * 2)
    * twitter: @mururururu (ru * 4)
    * github: @mururu (ru * 2)

    HPC系の研究室の M1。

  8. Yuki Ito revised this gist Jun 2, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion otp.md
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    Elixir ユーザーのための OTP 入門 (Shinjuku.ex #10)
    # Elixir ユーザーのための OTP 入門 (Shinjuku.ex #10)

    ## 話すこと

  9. Yuki Ito revised this gist Jun 2, 2015. 1 changed file with 20 additions and 14 deletions.
    34 changes: 20 additions & 14 deletions otp.md
    Original file line number Diff line number Diff line change
    @@ -12,7 +12,6 @@ twitter: @mururururu (ru * 4)
    github: @mururu (ru * 2)

    HPC系の研究室の M1。
    時雨堂というところで Erlang を書いてます。

    ## 対象

    @@ -21,6 +20,12 @@ HPC系の研究室の M1。
    * Elixir でちょっとでも何か書いたことある人
    * Elixir の「プロセス」がどんなものかを知っている人

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

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

    ## OTP とは何か

    OTP Design Principles
    @@ -38,28 +43,29 @@ http://www.erlang.org/doc/design_principles/des_princ.html
    ### ビヘイビア

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

    ## KVS を作ってみよう

    (デモ)

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

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

    ## まとめ

    * OTP は Elixir でシステムを設計する際に頻出するパターンをまとめたもの
    * どのようなスーパーバイザツリーになるかという意識はとても大事
    * スーパーバイザツリーを設計する
    * Enjoy OTP!
  10. Yuki Ito created this gist Jun 2, 2015.
    65 changes: 65 additions & 0 deletions otp.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,65 @@
    Elixir ユーザーのための OTP 入門 (Shinjuku.ex #10)

    ## 話すこと

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

    ## だれ?

    twitter: @mururururu (ru * 4)
    github: @mururu (ru * 2)

    HPC系の研究室の M1。
    時雨堂というところで 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
    * Task
    * GenEvent
    * Supervisor
    * Application

    ## まとめ

    * OTP は Elixir でシステムを設計する際に頻出するパターンをまとめたもの
    * どのようなスーパーバイザツリーになるかという意識はとても大事
    * Enjoy OTP!