エンジニア歴数ヶ月の新人がElixirとPhoenixについて書いていきます。
きっかけ
- 名前にそそられた
- これから伸びそう
- 福岡で盛り上がってるみたい
目標
ざっくりと概要を理解してインストールができるようになる
Elixirとは
Elixirは拡張性と保守性の高いアプリケーションを構築するためにデザインされた、動的で関数型のプログラミング言語です。
Elixirは、低レイテンシで分散型のフォールトトレラントシステムや、Webや組み込みシステムの領域で成功を収めている、Erlang VMを利用します。
- 耐障害性
- 分散アプリケーションの構築のしやすさ
- 関数型プログラミング
- Erlang VM(BEAM)上で動作する言語
- Erlangのいいとこ取りしている
- mixなどのビルドシステムがある
Phoenixとは
- Elixir製のWEBフレームワーク
- MVCパターンで書ける
- RubyonRails風
※ドキュメントを翻訳している方がいました。
Phoenix Framework Guide をなんとなく訳してみた
インストール編
インストールするもの
- Homebrew
- Elixir
- Phoenix
- PostgreSQL
Homebrew
※途中でOSのパスワード求められます
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Elixirのインストールとバージョン確認
# Elixirのインストール
$ brew install elixir
Erlang/OTP 21 [erts-10.1.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe] [dtrace]
Elixir 1.7.3 (compiled with Erlang/OTP 21)
# Elixirのバージョン確認
$ elixir --version
Elixir 1.7.3 (compiled with Erlang/OTP 21)
Postgresqlのインストールとバージョン確認
# postgresqlのインストール
$ brew install postgresql
# postgresqlのバージョン確認
$ postgres --versio
postgres (PostgreSQL) 10.5
# 起動(?)
$ pg_ctl -D /usr/local/var/postgres start
# DB追加
$ createdb
# ユーザー作成
$ createuser postgres
# 接続
$ psql
# DB作成準備
[username=# ALTER USER postgres CREATEDB;
# 終了
\q
hexパッケージマネージャとPhoenix本体をインストール
# hexパッケージマネージャ
$ mix local.hex
* creating /Users/****/.mix/archives/hex-0.18.1
# Phoenixインストール
$ mixarchive.installhttps://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
* creating /Users/****/.mix/archives/phoenix_new
プロジェクト作成
# プロジェクト作成
# $ mix phoenix.new [プロジェクト名]
$ mix phoenix.new example
# プロジェクトのディレクトリに移動
$cd example
# ビルドインサーバー起動
$ mix phoenix.server
http://localhost:4000
http://localhost:4000にアクセスして表示されたら終わり!
Error
プロジェクト作成時に以下のエラーが出る
* error command failed to execute, please run the following command again after installation: "npm install && node node_modules/brunch/bin/brunch build"
ユーザーpc:プロジェクト名 ユーザー名$
このエラーがでた場合、ビルドインサーバーが起動しないが、以下のコマンドを書くことで起動されるようにりました
# 作成したプロジェクトのディレクトリに移動
$cd プロジェクト名
$ mix ecto.create
まとめ
エラーが出たりしましたが、なんとかPhoenixの表示まで行えました。
概要を理解するにもわからない単語が多すぎて、何を言っているのかわからないので
実際に触りながら単語の意味を理解していきます。
参考資料
Elixirを勉強し始めたときに役立つトピック
Elixir + Phoenixでリアルタイムアプリケーションを作ってみるメモ
[翻訳] Railsの弟、Phoenix Frameworkで遊ぼう
Phoenix-Frameworkの基礎知識