elixirハンズオン2
TRANSCRIPT
Elixirハンズオン[Elixir概要]
2017/10/29
Powered by tokyo.ex
Agenda
• イベントの趣旨
• Elixirとは
• Phoenixとは
• Phoenixアプリの特徴
• 基本シンタックス
• 基本モジュール
• ライブラリ
• ハンズオンで作成するアプリ
イベントの趣旨
• ハンズオンのゴール
– Elixir/Phoenixのアプリ作成の流れを体験する
– Webアプリの作成を体験する
• ハンズオンでやること
– Phoenixアプリのプロジェクト作成
– Phoenixを使ったMVCアプリの作成
– Phoenixを使ったチャットアプリの作成
• ハンズオンでやらないこと
–詳細な文法、マクロ
Elixirとは
• ErlangのVM上で動くプログラミング言語
• 関数型言語
• コンパイラ型言語
• プロジェクト管理ツール(mix)がバンドル
–プロジェクト管理、ライブラリの取得、etc
– DEMO
• REPL(iex)がバンドル
– DEMO
Phoenixとは
• ElixirのWebアプリケーションフレームワーク
–デファクトスタンダード
– RubyにおけるRails(のようなポジション)
• リアルタイム処理を扱うのが得意
– WebSocket上の仮想的なPhoenixChannelの層を使って簡単にリアルタイム処理を記述できる
Phoenixの特徴
• 超軽量– 1つのコネクション = 1つのErlangプロセス(OSのプロセスではない)で表現される
– 同時に多くのコネクションを扱いたい時に便利– WebSocket周りは、RailsのActionCableに比べて超軽量
• エコシステム– 一通りのことはできるが、Ruby,Nodeに比べるとライブラリ数が圧倒的に少ない
– DEMO
• 性能– http://phoenixframework.org/blog/the-road-to-2-million-
websocket-connections– Phoenixで200万のWebSocketの同時接続のベンチーマク– DEMO
基本シンタックス(型)
基本シンタックス(モジュール)
基本シンタックス(パイプ)
基本シンタックス(パターンマッチ1)
基本シンタックス(パターンマッチ2)
基本モジュール
• ドキュメント
– http://elixir-lang.org/docs.html
– https://hexdocs.pm/elixir/Kernel.html
• iexの「h <モジュール>」でドキュメント表示
基本モジュール(IO)
基本モジュール(Enum)
ライブラリ
• Hex.pm(https://hex.pm)がホスティング
• Git(github)からも取得可能
• 手順
– 1) mix.exsのdepsに対象ライブラリを記述
– 2) mix deps.getで取得
• depsディレクトリに配置される
– 3) mix deps.compileでコンパイル
• _buildディレクトリに配置される
– 4) iexを起動すると自動でコンパイルされる
ハンズオンで作成するアプリ
• Phoeinxを使ったWebアプリケーション
–挨拶アプリ
• MVCの基本機能を使った画面
–チャットアプリ
• PhoenixChannelを使ったリアルタイムコミュニケーション
それではハンズオンへ
テキスト:
https://github.com/ohr486/elixir_handson_demo2/wiki