More Related Content
PPTX
PPTX
PPTX
PPTX
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介 PDF
PPTX
PPTX
running web app on elixir PPTX
Similar to Elixir言語紹介
PDF
PDF
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!! PPTX
Elixirで関数型言語の設計を学ぶ - daimon.ex 2024-09-20 PPTX
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク PPTX
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」 PPTX
Rubyのenum系高階関数を elixirでも使いたい PDF
Elixir とか組込みとか (On Elixir and embedded systems) PPTX
PPTX
PPTX
PPTX
PPTX
Elixir-Conf-Japan-2017-session-ohr486 PDF
PDF
Exineris Project by kochi.ex PPTX
PPTX
やや関数型を意識した風Elixir/Phoenixご紹介 PPTX
PPTX
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります KEY
PDF
More from Tsunenori Oohara
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
running-elixir-in-production PPTX
PPTX
PDF
PDF
Recently uploaded
PDF
krsk_aws_re-growth_aws_devops_agent_20251211 PPTX
君をむしばむこの力で_最終発表-1-Monthon2025最終発表用資料-.pptx PDF
ソフトウェアエンジニアがクルマのコアを創る!? モビリティの価値を最大化するソフトウェア開発の最前線【DENSO Tech Night 第一夜】 PDF
2025/12/12 AutoDevNinjaピッチ資料 - 大人な男のAuto Dev環境 PDF
音楽アーティスト探索体験に特化した音楽ディスカバリーWebサービス「DigLoop」|Created byヨハク技研 PDF
ソフトとハードの二刀流で実現する先進安全・自動運転のアルゴリズム開発【DENSO Tech Night 第二夜】 ー高精度な画像解析 / AI推論モデル ... Elixir言語紹介
- 1.
- 2.
- 3.
自己紹介
• おーはら
• Twitter:@ohrdev
• 所属: ドリコム
• Community: JapanElixirAssociation理事/tokyo.ex主催
• Work: ゲーム・サービス基盤、広告系サービス
• Like: 自社仏閣,仏像鑑賞,仏像制作,VR,FF14(白70),ダイエット
• LikeLang: Lisp,Erlang,Elixir,Ruby
• etc
• エンジニアHUB: Elixir入門記事
• https://employment.en-japan.com/engineerhub/entry/2017/06/12/110000
• https://employment.en-japan.com/engineerhub/entry/2017/06/19/110000
- 4.
Elixir概要
• Elixirとは
• ErlangVM上で動作し、
• 耐障害性、ソフトリアルタイム、分散処理が得意な、
• メタプログラミング(マクロ)可能な、
• 軽量プロセスによるアクターモデルのパラダイムを持つ、
• 動的型付けの、
• ネットワークサーバー構築に特化した、
• 非純粋な関数型言語
• のプログラミグ言語です。
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
Elixirウォークスルー(N)
• その他、紹介しきれなかった特徴・機能
• メタプログラミング
•マクロ(Lispの様なAST操作、ただしS式ではなくタプルで表現)
• パターンマッチ
• 型システムは(まだ)ない
• 将来的に導入される予定
• コンパイルするとErlangVMの実行バイナリ(beam)が吐かれる
• Erlangのモジュールをシームレスに利用可能
• OTP(open telecom platform)
• Elixir/Erlangで並行プログラムを書く際に利用できるパターン・フレームワーク
• etc
- 12.
- 13.
- 14.
Elixirの計算モデル
• 全てがErlangVM上のプロセスで表現される
• ex)iex, mix, elixir自身もErlangVM上のプロセスの集合体でしかない
• プロセスの集合=アプリ
• main関数はない、代わりにアプリ毎にマスタープロセスがある
• マスタープロセスを根とするプロセスツリーが、実際の処理を行う
Application
Master Process
Supervisor
Process
Worker
Process
子プロセスを監視
し、クラッシュし
たら再起動する
関数を引数にとり
生成され、引数の
関数処理を行う
Elixirアプリ
ケーション
- 15.
- 16.
何故Elixirを使うのか?
• 解決したいリアルの課題
• 自分のバックグラウンドはウェブ屋さん
•大量のトラフィックを「安定して」「低コストで」「メンテナブル
に」捌きたい
• サービスを止める事なくプログラムをアップグレードしたい
• Ex)
• 数千万のクライアントからのコネクションを同時に維持してpubsubする
• WebSocketのコネクションを維持したままプログラムをバージョンアップ
• 平時のトラフィックの数百倍のスパイクがきたとしても、クラッシュする事なく
レスポンスを返す
• その他たくさん
- 17.
何故Elixirを使うのか?
• ネットワークサーバーを書く為に使っている
• 耐障害性(VMが安定)
•OTPを使って並行処理が簡単に書ける
• 1TCPコネクションを1プロセスに割り当てる事が可能
• プロセスは超軽量なので大量のTCPコネクションを保持できる(ex: websocket)
• 1台のサーバーでwsで200万同時接続してpubsubした事例
• http://phoenixframework.org/blog/the-road-to-2-million-websocket-connections
• GCはプロセス毎に走るのでstop the worldが無い
• プログラミング言語というよりサーバー記述用DSLという感覚
- 18.