エンジニア歴数ヶ月の新人がElixirとPhoenixについて書いていきます。
##きっかけ
- 名前にそそられた
- これから伸びそう
- 福岡で盛り上がってるみたい
##目標
#####ざっくりと概要を理解してインストールができるようになる
##Elixirとは
Elixir:ドキュメント
Elixirは拡張性と保守性の高いアプリケーションを構築するためにデザインされた、動的で関数型のプログラミング言語です。
Elixirは、低レイテンシで分散型のフォールトトレラントシステムや、Webや組み込みシステムの領域で成功を収めている、Erlang VMを利用します。
- 耐障害性
- 分散アプリケーションの構築のしやすさ
- 関数型プログラミング
- Erlang VM(BEAM)上で動作する言語
- Erlangのいいとこ取りしている
- mixなどのビルドシステムがある
##Phoenixとは
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の基礎知識