Part27:Agent

ことり「スペシャルゲスト、ことりですよ~」
海未「こ、ことり!?何かあったのですか?」
ことり「海未ちゃん、なんで焦ってるのかな?」
凛「前の方のサンプルコードにことうみことうみ書いてあるからにゃ」
ことり「ことうみ・・・?」
海未「なななななんでもありません!それより!何か用件があるのではないですか!?」
ことり「・・・えーっとね、みんなSRことり3枚取り頑張ってね、って」
凛「だって」
希「海未ちゃん、これで取れなかったら園田の名が泣くで」
ことり「海未ちゃん、おねがぁい♡」
海未「・・・善処は、しましょう」
ことり「うん。頑張ってね」
海未(絶対取ります。絶対です。石が足りなければ真姫を脅すまで)
ことり「じゃ、ことりはこれで~」
希「ちなみに今日は2015年9月5日や」


本編ここから

希「ほな、OTPの第一歩やね。前回プロセスに状態を持たせるやつをやったけど、あれを簡単に書けるAgentを触ってみるで」
海未「そもそもOTPとは何なのですか?」
希「Open Telecom Platform・・・並行プログラミングのために完備された開発環境。Erlangコンパイラ/インタプリタ、データベース、解析ツール、ライブラリ・・・そんなようなもんや」
凛「Erlangが出てくるの~?」
希「いや、Erlangで使われてるこの仕組みが、Elixirでも使えるっていう話や」

希「前回凛ちゃんが作ったスコアマッチメッセージングサーバを書き直してみるで」

希「KV.Bucketは汎用的なキーバリューストアや。前回は再帰で書いてたけど、Agentを使うとこの通り簡単に書ける」
海未「プロセスを意識しなくてもよくなっていますね」
希「今回マップじゃなくてHashDictを使ってるけど、これは実のところマップでもかまわへん。データが増えたときの効率の問題や」

希「このデータを詰め込んだ入れ物を便宜上bucketって呼ぶことにする」
凛「バケツ?」
海未「艦これの話はしていません」

希「利用する側のコードはさらに簡単や。普通の関数呼び出し感覚でメッセージのやりとりができる」
凛「これは楽だにゃ」

希「Agentはプロセスが持ってるデータに対するCRUDをうまいこと面倒見てくれるんや。じゃあ最後に、deleteを実装してみよか」

希「こんな感じでメッセージを削除する機能も簡単に実装できる」

希「次回はGenServerかな。海未ちゃん、頼むで」
海未「はい。この感じなら難しくなさそうですね」
凛「マクロあたりが難解すぎただけにゃ・・・」


LINEで送る
Pocket


返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です