はじめに
毎年少なくとも言語を1つ学習する。(『達人プログラマー 第2版』第1章 6 より)
Python大好き、nikkieです。
達人プログラマーのこの一節はよく引かれますよね。
私は「とにかくPythonのことをどこまでも知りたい!」という感じなのですが、このたび訳あってElixirの環境構築をしました。
もう一度やるときに参照して楽できるよう、自分用のメモとしてアウトプットします。
目次
WEB+DB PRESS Vol.127
2022年2月発売の号です(執筆時点の最新はVol.128)。
ここで取り上げるPhoenixの特集の他、
- 実践リファクタリング 凝集度と結合度を学び,保守性と生産性を高める
- 入社した会社にすばやく適応する 事業構造,カルチャー,コードの把握
といった特集があります。
また、連載「現場のPython」は komo_fr さんによる「データサイエンスのためのテスト入門」1でした2。
特集2 Elixirによる高速なWeb開発! 作って学ぶPhoenix
本特集では,ElixirとPhoenixでWebアプリケーションを開発する方法を解説します。
ちょうどPhoenixというWebアプリケーションフレームワークが気になっていたタイミングで、直近のWEB+DB PRESSで取り上げられているのに気づき、読んでみることにしました。
特集ではrealworld3を題材に、PhoenixでWebアプリを作ります!
ソースコードはこちら:
環境構築!
Elixirのインストールからスタートです。
※ちなみに、Elixirの文法もよく分かっていません。
特集によると
asdfのようなパッケージマネージャを用いてインストールすることをお勧めします。(p.136)
とのことなので、オススメにならって環境構築しました。
初めてのasdf、ワクワクです!
手順
環境構築コマンド覚書
開発環境情報
- macOS 10.14.6 (古いOSとなっています)
- Homebrew 3.4.6
1. asdfのインストール
Getting Started | asdf (☆)に沿って進めます。
macOSではHomebrewを使うと
brew install asdf
でインストールできます(リンク先の1,2の部分)。
リンク先3の部分にある、シェル起動時に読み込ませる設定も実施します。
「Bash & Homebrew (macOS)」に沿って、~/.bash_profile
を編集しました。
これでasdf
コマンドが使えるようになりました!
$ asdf --version v0.10.0
2. asdfのpluginのインストール
(☆)の4に該当します。
elixirだけでなくerlangのプラグインもインストールします。
asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang.git asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git
asdf plugin list
でインストールされたことを確認できました。
3. asdfでerlang, elixirをインストール
(☆)の5, 6に相当します。
環境構築時(2022/04時点)の最新バージョンを指定しました。
asdf install erlang 24.3.3 asdf install elixir 1.13.4
asdf list elixir all
のようにして、インストール可能なバージョンを確認できます。
最後に、使うelixirのバージョンを指定します。
local
で作業ディレクトリごとに違うバージョンも指定できますが、やりたいことは特集を体験するだけなのでglobal
で十分そうと判断しました。
asdf global elixir 1.13.4
Elixirがインストールされています!🙌
$ elixir --version Erlang/OTP 24 [erts-12.3.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit] Elixir 1.13.4 (compiled with Erlang/OTP 22)
終わりに
asdfを使って、Elixirのインストールができました。
これでPhoenixの特集をバリバリ進められます!
asdfは初めて触りましたが、なかなか好感触です。
「Manage multiple runtime versions with a single CLI tool, extendable via plugins」を謳うだけあり、「pyenvよりもasdfを使ってみたいな」と思いました。
pyenvだとPythonの管理しかできないですが、asdfだとPythonだけでなくElixirも他の言語も管理できると思っていて、それが魅力的です。
この環境構築の伸びしろポイントとしては、Pythonでいうvenv的なものを知りたいですね。
Elixirを使った開発が全然分かっていないのですが、いまのままだと、Elixir 1.13.4で複数のPhoenixのバージョンを使い分けられないんじゃないかと思っています。
ここで共有した手順で開発環境は構築できました。
近いうちにmix release
の成果物を動かすまでの手順4を共有予定です。
-
PyCon JP 2020の「NumPy/pandas使いのためのテスト自動化入門」のアップデート版という印象です。↩
-
↩本日発売のWEB+DB PRESS Vol.127の連載「現場のPython」で、「データサイエンスのためのテスト入門 〜 pandasやNumPyのテスト機能を使って快適に実験しよう」という記事を書かせていただきました! #wdpresshttps://t.co/QJnqhwgGbE
— komo_fr ₍₍⁽⁽🐍₎₎⁾⁾ (@komo_fr) 2022年2月24日 -
Medium.com のクローンアプリをバックエンド・フロントエンドの多様な組合せで作るための作り方のリポジトリのようです。 ↩
-
↩#wdpress 1つ前の2月の号(vol.127)のPhoenixの特集、mix releaseの成果物をどう動かすんだろうと気になり(脱線を始め)、https://t.co/X5jF32iCuG を参照しつつもめちゃめちゃ躓いた挙げ句、ついに動かせました🙌 pic.twitter.com/53muFdntf6
— nikkie にっきー シオンv0.0.1開発中⚒ (@ftnext) 2022年4月24日