19
1

More than 1 year has passed since last update.

ElixirのWebアプリケーションフレームワーク「Phoenix」の読み方

Last updated at Posted at 2022-01-27

たとえ後で罪を得ても座視しているわけにはいかない。

Advent Calendar 2022 27日目1の記事です。
I'm ready for 12/25,2022 :santa::santa_tone1::santa_tone2::santa_tone3::santa_tone4::santa_tone5:
I'm looking forward to 12/25,2022 :santa::santa_tone1::santa_tone2::santa_tone3::santa_tone4::santa_tone5:
I can't wait for 12/25,2022 :santa::santa_tone1::santa_tone2::santa_tone3::santa_tone4::santa_tone5:
私のAdvent Calendar 2022 一覧


はじめに

Elixirを楽しんでいますか:bangbang::bangbang::bangbang:
ElixirでWebアプリケーション開発を楽しむには、Phoenixを使います。

ところで、みなさんはPhoenixをどんなふうに発音していますか。

$\huge{フェニックス}$
と日本に住んでいる多くの方は発音しているとおもいます。
これは聖闘士星矢の影響だとおもいます2

海外のAlchemistたちは、どうも「フェニックス」とは言っていないような気がします。

どう発音するのか調べてみました。

$\huge{フィニック(ス)}$
と私には聞こえています。
最後のスは言っているか言っていないかくらいの小ささです。

発音記号

fíːniks

:pray::pray_tone1::pray_tone2::pray_tone3::pray_tone4::pray_tone5:

あ、ごめん。
私コレ出されてもよくわかりません :sweat_smile:

実際に聞いてみよう

YouTubeから、Phoenixと言っているできるだけピンポイントの瞬間をご紹介します。

Chris McCordさん

Phoenixの作者です。

José Valimさん

Elixirの作者です。

みなさんには、どう聞こえましたか?

ジョン万次郎方式

そういうものがあるんです。
幕末に活躍された方です。

万次郎達は足摺岬の南東15キロメートルほどの沖合で操業中、突然の強風に船ごと吹き流され、航行不能となって遭難してしまう。5日半(資料によっては10日間)を漂流した後、伊豆諸島にある無人島の一つである鳥島に漂着し、この島でわずかな溜水と海藻や海鳥を口にしながら143日間を生き延びた。同年5月9日(1841年6月27日)、万次郎達は、船長ウィリアム・ホイットフィールド率いるアメリカ合衆国の捕鯨船ジョン・ハウランド号が食料として海亀を確保しようと島に立ち寄った際、乗組員によって発見され、救助された。
しかし、その頃の日本は鎖国していたため、この時点で故郷へ生還する術はなく、帰国の途に就いた捕鯨船に同乗したままアメリカへ向かわざるを得なかった。

(https://ja.wikipedia.org/wiki/%E3%82%B8%E3%83%A7%E3%83%B3%E4%B8%87%E6%AC%A1%E9%83%8E)

すさまじい人生です。
食いしん坊の私なら3日と持たないでしょう。

そんなすんごい万次郎さんが、たとえばwaterを「ワラ」と書き残すわけです。
生きるか死ぬかの死線をくぐり抜けた万次郎さんが編み出した英語学習法です。
これを使わない手はありません。

早速使ってみます。

じゃん!
$\huge{フィニック(ス)}$
と私には聞こえています。
最後のスは言っているか言っていないかくらいの小ささです。

「(ス)」についてアメリカ在住の @mnishiguchi さんから教えてもらいました。

ネイティブの発音を聞いてみると舌と前歯の隙間から漏れる空気の音です。
日本語で「うーすっ」みたいに軽い挨拶のときの「ス」が近いと思います。

さらにはこの空気の音をまず覚えておいて、THと比べてみるとまた面白いそうです!!!


ここで突然、PhoenixのHello, world的なことをおっぱじめます。
Elixirをインストールしておいてください。
ここでは、データベースにPostgreSQLを使います。

参考: DockerでPostgreSQLを起動する

$ docker run -d --rm -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres postgres:13

POSTGRES_USERと POSTGRES_PASSWORDの値を変更したら、あとで作るconfig/dev.exsconfig/test.exsの値を変更してください。

プロジェクトのセットアップ

$ mix local.hex
$ mix archive.install hex phx_new
$ mix phx.new basic
$ cd basic
$ mix setup

ブログ機能

ブログ機能を作ります。

$ mix phx.gen.live Blogs Blog blogs title:string body:text

指示にしたがって、lib/basic_web/router.exを変更

lib/basic_web/router.ex
  scope "/", BasicWeb do
    pipe_through :browser

    get "/", PageController, :index

    live "/blogs", BlogLive.Index, :index
    live "/blogs/new", BlogLive.Index, :new
    live "/blogs/:id/edit", BlogLive.Index, :edit

    live "/blogs/:id", BlogLive.Show, :show
    live "/blogs/:id/show/edit", BlogLive.Show, :edit
  end
$ mix ecto.create
$ mix ecto.migrate
$ mix phx.server

※ 前の手順で、この記事の通りmix setupをした場合はこのときにデータベースが作られるので、mix ecto.createはしなくてもよいです。

はい、できあがり:rocket:

Visit: http://localhost:4000/blogs

スクリーンショット 2022-01-25 19.44.40.png

Wrapping up :lgtm::lgtm::lgtm::lgtm::lgtm:

Enjoy Elixir:bangbang::bangbang::bangbang:
$\huge{Enjoy\ Elixir🚀}$

Phoenixは、
$\huge{フィニック(ス)}$
と私には聞こえています。
最後のスは言っているか言っていないかくらいの小ささです。

2022年に流行る技術予想 ーー それは、ElixirPhoenix LiveViewLivebookNerves Livebookです:rocket::rocket::rocket:

Elixirの誕生日は、2012年5月24日です。
そのため、今年の2022年5月24日は10周年を迎えます。

iex> Date.diff(~D[2022-05-24], ~D[2022-01-27])
117

そうそう!
2月24日発売予定のWEB+DB PRESSで、ElixirPhoenixの特集がでますよ〜


Elixir

最後の最後に、Elixirについて紹介します。

  • |>でスイスイ、プログラミングしていくことができる素敵なプログラミング言語です
  • さっそくプログラムの例を示します
  • Qiita APIを使わせていただいて、Elixirタグがついた最新の記事を20件取得しています
  • ここでは雰囲気をつかんでいただければ大丈夫です
Mix.install [{:req, "~> 0.2.1"}]

"https://qiita.com/api/v2/items?query=tag:Elixir"
|> URI.encode()
|> Req.get!(finch_options: [pool_timeout: 50000, receive_timeout: 50000])
|> Map.get(:body)
|> Enum.map(& Map.take(&1, ["title", "url"]))

Webアプリケーションを楽しむなら

IoTを楽しむなら

AIを楽しむなら

もっとElixirのことを知りたい方へオススメの書籍 :books:

コミュニティ

  • elixir.jp Slack workspaceに参加してみてください
    • マヂ、やさしい人ばっかりのコミュニティ
    • あなたの困ったをきっと解決してくれるでしょう
  • NervesJP Slack workspaceでは、NervesやIoTが好きな愉快なfolksたちがあなたの訪れを歓迎します :tada:
  • たくさんのコミュニティがあります
    FCOvBkAUYAE6mL8.jpeg
    (EDI/fukuoka.ex/kokura.exLiveView JP@piacerex さん作 :pray::pray_tone1::pray_tone2::pray_tone3::pray_tone4::pray_tone5:)

Elixirコミュニティに初めて接する方は下記がオススメです

Elixirコミュニティ の歩き方 -国内オンライン編-

https://speakerdeck.com/elijo/elixirkomiyunitei-falsebu-kifang-guo-nei-onrainbian
image.png
(piyopiyo.exエリジョ の nakoさん(@nako_sleep_9h) 作、素敵な資料:clap::clap_tone1::clap_tone2::clap_tone3::clap_tone4::clap_tone5:)


I organize autoracex.
And I belong to NervesJP, fukuoka.ex, EDI.
I hope someday you'll join us.

We Are The Alchemists, my friends!

  1. @kaizen_nagoya さんの「「@e99h2121 アドベントカレンダーではありますまいか Advent Calendar 2020」の改訂版ではありますまいか Advent Calendar 2022 1日目 Most Breakthrough Generator」から着想を得て、模倣いたしました。

  2. テキト〜 に言っています。真に受けないでください。:pray::pray_tone1::pray_tone2::pray_tone3::pray_tone4::pray_tone5:

19
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
1