14
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

$\huge{元氣ですかーーーーッ!!!}$

はじめに

闘魂とElixirが出会いました。
闘魂 meets Elixir.です。
Elixir meets 闘魂.でもよいです。

本日は、Phoenixを説明します。

iex> "Elixir" |> String.graphemes() |> Enum.frequencies()
%{"E" => 1, "i" => 2, "l" => 1, "r" => 1, "x" => 1}

What is Phoenix ?

Phoenixの説明をします。
ひとことで言うと、Elixirで、Webアプリケーション開発を楽しめるフレームワークです。
RubyにおけるRuby on Rails、PythonにおけるDjangoのようなものです。

Webアプリケーション開発を楽しめるフレームワーク

ElixirPhoenixの特徴は、公式にfunと書いてあることです。
Elixirは、そしてもちろんPhoenixは、開発を楽しめるのです。

ところで、Elixirの作者José Valimさんは、Elixirを作る上で影響を受けた言語にRubyを挙げられています。

José Valim - Cognicast Episode 120

The main, the top three influences are Erlang, Ruby, and Clojure.

完全に私見です。
ElixirRubyから一番色濃く影響を受けているのは、 A PROGRAMMER'S BEST FRIEND だとおもっています。A PROGRAMMER'S BEST FRIEND は、Rubyの公式ページの先頭のところに書いてあります。
Elixirにのめり込むと自然と海外の方との交流が増えます。出会う人がみな親切でジェントルマンです。国内のコミュニティもそうです。みなマヂでいい人ばっかりです。

スクリーンショット 2022-11-14 11.53.20.png

Phoenixは、ElixirでWebアプリケーションを開発する際によき友となってくれます。

Phoenixはデファクトスタンダード

Elixirは書いていて楽しいし、もちろんWebアプリケーション開発も楽しめちゃうというわけです。
ElixirのWebアプリケーションフレームワークのデファクトスタンダードがPhoenixなのです。

感覚的な話はいいから、もっと技術的なことを知りたい! という方には、「WEB+DB PRESS Vol.127:book:」をオススメします。
一言だけ言っておくと、Webアプリケーション開発に必要なモダンで洗練された要素はすべて入っています。

読み方

カタカナで書いておきます。
フィニック(ス)」です。
最後のスは言っているか言っていないかくらいの小ささです。

この話は、別の記事に書いています。
よろしければご参照くださいませ。

ちなみに、日本生まれの方は聖闘士星矢の影響なのか「フェニックス」と読んでいる方が多いです。
国内では、「フェニックス」と発音したほうが圧倒的に通じます。

Elixirをやっていると海外との距離は近くなります。
海外の方と話すことがありましたら、「フィニック(ス)」と言ったほうが通じるでしょう。

昔の人は善いことを言いました。
郷に入っては郷に従え」です。
相手のよって応対を変える。おもてなしの心です。

以上で、Phoenixの紹介を終えます。


ハンズオン

それではさっそくハンズオンをおっ始めます。
簡単なBlogを作ってみます。
データベースのCRUDをします。

準備(インストール)

楽しむためには準備が必要です。

Elixir

をご参照ください。
Elixirのバージョンは、1.14以上をインストールしてください。

Phoenix

Phoenixをインストールします。
もうそろそろPhoenix 1.7が正式にリリースされます。
おそらく年明け(2023年01月)と街で噂です。
1.6と比べて破壊的変更がされているのでいまから始められる方は、どうせなら1.7からはじめてみることをオススメします。

2022-12-17現在、バージョン1.7.0-rc.0を指定すると吉です。

CMD
mix local.hex
mix archive.install hex phx_new 1.7.0-rc.0

PostgreSQLの起動

ここでは、Dockerで動かします。
他の方法で起動される場合には、ユーザー名とパスワードを以下コマンドと同じにしておくと吉です。

CMD
docker run -d --rm -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres postgres:15

プロジェクトの作成

CMD
mix phx.new hello

Fetch and install dependencies? [Yn]は、Yでもnでもどちらでもよいです。
私はいつもnにしています。

とりあえず動かす

CMD
cd hello
mix setup

Shall I install rebar3? (if running non-interactively, use "mix local.rebar --force") [Yn]を訊かれたら、Yにしましょう。

CMD
mix phx.server

Visit: http://127.0.0.1:4000

ブラウザで迷わずアクセスしてみてください。

スクリーンショット 2022-12-17 22.27.06.png

カッちょいいのが立ち上がったら成功です。

もしここまででうまくいかないところがありましたら、先へは進めませんので、落ち着いて手順を見直してみましょう。
エラーログをよく読んでみましょう。答えはそこに書いてあります。

ブログ機能を追加

ここでは四の五の言わずにとにかく実行してみましょう。
プロジェクトのルートで以下のコマンドを実行してください。

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

上記を実行すると以下のメッセージが実行結果に表示されます。

Add the live routes to your browser scope in lib/hello_web/router.ex:

    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


Remember to update your repository by running migrations:

    $ mix ecto.migrate

この通りのことをあとはやればいいです。

少し戻って、mix phx.gen.live Blogs Blog blogs title:string body:textコマンドの意味を知りたい方は以下の記事をご参照ください。
https://hexdocs.pm/phoenix/Mix.Tasks.Phx.Gen.Live.html

lib/hello_web/router.ex の編集

1.7.0-rc.0ですと、17行目-21行目に以下があるはずです。
ここを編集します。

編集前

lib/hello_web/router.ex
  scope "/", HelloWeb do
    pipe_through :browser

    get "/", PageController, :home
  end

編集後

lib/hello_web/router.ex
  scope "/", HelloWeb do
    pipe_through :browser

    get "/", PageController, :home
    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

データベースのmigrate

データベースをmigrateしましょう。

CMD
mix ecto.migrate

ブログ機能を動かす

もし「とりあえず動かす」で動かしているものがありましたら、一度Ctl + Cで止めてください。
再度、Phoenixアプリを動かします。

CMD
mix phx.server

Visit: http://127.0.0.1:4000/blogs

ブラウザで迷わずアクセスしてみましょう。

スクリーンショット 2022-12-17 22.42.51.png

:tada: :tada::tada:

「New Blog」ボタンでブログの作成ができます。
まずはここからはじめて、CRUD(Create Read Update Delete)を楽しみましょう。

今日の闘魂

人は生命を賭けて一か八かの大勝負をしないといけないときがあります。

豊臣秀吉(太閤殿下)の場合

金ヶ崎の退き口

まず挙げられるのは、豊臣秀吉たちが務めた殿(しんがり)の功績でしょう。
殿とは、撤退戦のときに最後尾を請け負い、敵の追手を食い止めたり振り切ったりする部隊のことです。戦場においては最も危険な任務とも言え、例えば長島一向一揆のときには美濃三人衆の一人である氏家卜全が一揆衆の攻撃を受けて犠牲になっています。
そんな危険な役割を秀吉自ら願い出るとは――講談などでは秀吉が自ら殿を願い出たという話もあります

ビル・ゲイツの場合

できてもいないものをできたと売り込み、プレゼンまでに完成させたそうです。

のちに皇帝とまで言われるようになる人物の若いころの有名な逸話です。

猪木さん流に言うと

猪木さん流に言うと、「人間は、一生のあいだに何度か闘わなければならないときがある。そのときに、妥協して敗れるのか、必死で闘った結果敗れるのかでは大きな違いがある」ということです。

:book:アントニオ猪木 最後の闘魂:book:より引用します。

年間何百試合と闘っていれば、コンディションがよくない日だってある。だからといって、「今日は調子が悪いから仕方ない」と、勝負を投げることはなかった。闘う前から妥協して自分に負けてしまっていたら、相手に勝つことなんてできない。相手に負けること以上に自分に負けることは絶対に嫌だった。どんなときでもベストを尽くす。必死で闘えば、必ずなにか得られるものがある。

一言で言うと、つまりは 闘魂 です。
「闘魂」とは、 「己に打ち克つこと、そして闘いを通じて己の魂を磨いていくことだとおもいます」 と猪木さんはおっしゃられています。

:book:アントニオ猪木 最後の闘魂:book:
みなさまもぜひこの本をお手にとられて、猪木さんが残されたメッセージを通じて、直接猪木さんから「元氣」をもらってください。

image.png

少し残酷なことを言います。
正確には聞く人にとっては、耳の痛い話をします。

歴史に名を残す人は、勝っています。
負けません。勝つまで続けます。

人智を超えた運、天運を持っている方々なのでしょう。
運をも家来にしている人たちなのでしょう。 その心境に至るには、自分自身でできるあらゆることに最善を尽くすことが前提なのでしょう。

もしあなたがまだ勝てていないのだとしたら、「こんなにがんばっているのに!」と努力を売り物にしているのだとしたら、私自身も含めてそうですけど、まだまだ全然がんばりが足りないのです。
それでは人類は次のステージにいけないのです。
全員が、ビル・ゲイツ氏、イーロン・マスク氏のレベルになる ーー そうなってくると、未来のビル・ゲイツ氏、イーロン・マスク氏に相当する人はもっと先にいるのです。それでこそ世界文化はようやく進展するのです。私達ひとりひとりは人類発展の尊い礎なのです。生命の続く限り闘い抜くべきなのです。

女優の芦田愛菜さんが王貞治会長の言葉を紹介されています。
「努力は必ず報われる。報われない努力があるとすればそれはまだ努力とは言えない」(王貞治)

将棋では素人でも、いまの藤井先生と同じレベルになる ーー そんな未来がきて、将棋はますます発展するのです。将棋ウォーズ2級の分際で大それたことを言っています。100年後、1000年後の理想とする世界観、メッセージとしてご容赦ください。


Phoenix は不死鳥 ーー 闘魂は永遠

2022-10-01 アントニオ猪木さんは、文字通り生命を燃やし続けられました。
その火は消えていないのです。

闘魂の火は永遠です。いつまでも一人ひとりの胸の中で闘魂の火が燃えていることでしょう。
闘魂は連鎖する」のです。

日本の歴史すなわち闘魂の連鎖.png

日本の歴史はすなわち闘魂の歴史です。

こちらのビデオの05分40秒あたりからをぜひご覧になってください。
アントニオ猪木さんの引退試合のセレモニーが始まります。
有名な「道」の詩が朗読されたシーンです。
引退セレモニーの冒頭で古舘伊知郎さんのナレーションがあります。
その中で「闘魂は連鎖する」の言葉があります。

闘魂のかけらを携えて今度は我々が旅にでる番だ! 闘魂は連鎖する!

Phoenix は不死鳥ですし、「燃える闘魂」は永遠なのです。


さいごに

Phoenixを説明しました。

闘魂の意味は、 「己に打ち克つこと、そして闘いを通じて己の魂を磨いていくことだとおもいます」 との猪木さんの言葉をそのまま胸に刻み込んでいます。
知っているだけで終わらせることなく、実行する、断行する、一歩を踏み出すことを自らの行動で示していきたいとおもいます。

$\huge{1、2、3 ぁっダー!}$



Twitter


$\huge{元氣があればなんでもできる!}$

14
1
0

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
14
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?