新しい技術は、必ず次の技術によって置き換わる宿命を持っている。それをまた自分の手でやってこそ技術屋冥利に尽きる。自分がやらなければ他社がやるだけのこと。商品のコストもまったく同じ
Advent Calendar 2022 45日目1の記事です。
I'm looking forward to 12/25,2022
私のAdvent Calendar 2022 一覧。
はじめに
Elixirを楽しんでいますか
Ectoに出したプルリクをJosé Valimさんにマージしてもらえました
What is Ecto ?
the database wrapper and query generator for Elixir
プルリクの内容
プルリクの内容は、mix ecto.gen.repo
タスクを実行したときのメッセージを改善しました。
プルリクにて、José Valimさんとやりとりをしているときにわかったこと
プルリクにて、José Valimさんとやりとりをしているときにわかったことがあります。
以下、プロジェクト名のfriends
はEctoのGetting Startedの例に由来しています。
Friends.Application.start/2
のchildren
にFriends.Repo
を追加する方法は2つあります。
タプルで書く例
def start(_type, _args) do
children = [
{Friends.Repo, []}
]
モジュール名だけで書く例★José Valimさん推奨★
def start(_type, _args) do
children = [
Friends.Repo
]
引数を必要としない場合の書き方は、後者のほうをJosé Valimさんは好まれているようです。
プルリクでのやりとりにて、後者にするようにコメントをいただきました。
この視点は、 @mnishiguchi さんにコメントをいただいて気づきました。
ありがとうございます!
What is mix ecto.gen.repo
タスク ?
mix ecto.gen.repo
タスクは、config
とRepo
モジュールを生成してくれます。
以下、例です。
$ mix ecto.gen.repo -r Friends.Repo
と、ガイドと同じように実行すると、以下の2つのファイルが生成されます。
config :friends, Friends.Repo,
database: "friends",
username: "user",
password: "pass",
hostname: "localhost"
defmodule Friends.Repo do
use Ecto.Repo,
otp_app: :friends,
adapter: Ecto.Adapters.Postgres
end
ちょっと待って、mix ecto.gen.repo
タスクなんて知らないよ!?
Phoenixでは、mix phx.new
タスクで自動的にconfig
やRepo
モジュールが作られます。
mix new friends --sup
てな具合に、素のElixirプロジェクトからはじめて、Ectoを追加したときに必要です。
なんで、素のElixirプロジェクトからはじめたの!?
気まぐれです。
「スッキリわかるSQL入門 第2版 ドリル222問付き!」という本でSQLを基礎から学び直そうと取り組みはじめて、どうせならElixirを楽しみたいということではじめました。
mix ecto.gen.repo
タスクを実行時のメッセージがわかりにくいとおもったから、ダメ元でプルリクをだしたら、José Valimさんにマージしてもらえました
Wrapping up 



Enjoy Elixir
$\huge{Enjoy\ Elixir🚀}$
今回は、以下を書きました。
-
Ectoに出したプルリクをJosé Valimさんにマージしてもらえました
-
application.ex
のchildren
にモジュールを追加する際には、引数を必要としない場合にはモジュール名のみを書くことが推奨されているようです
$\huge{ありがとうございます!}$
以上です。
付録
以下、付録です。
Elixirの誕生日は、2012年5月24日です。
そのため、今年の2022年5月24日は10周年を迎えます。
iex> Date.diff(~D[2022-05-24], ~D[2022-02-14])
99
そうそう!
2月24日発売予定のWEB+DB PRESSで、ElixirとPhoenixの特集がでますよ〜
Elixir、Phoenixをはじめられたばかりの方も、腕におぼえがある方も、どんなものなのかなあと様子見をきめこんでいる方も、
つまりは
$\huge{全人類のみなみなさま!!!}$
お手にとって、お楽しみください!!!
We, @tamanugi @torifukukaiou @the_haigo @mokichi_s12m including me, wrote featured articles for WEB+DB PRESS Vol.127 about Elixir and Phoenix! It's being published on 24, Feb.https://t.co/UPNiVU1zG9
— 栗林健太郎 (@kentaro) February 4, 2022
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のことを知りたい方へオススメの書籍
- プログラミングElixir(第2版) -- オーム社
- Elixir実践ガイド -- インプレス
- アルケミスト − 夢を旅した少年 -- KADOKAWA
コミュニティ
-
elixir.jp Slack workspaceに参加してみてください
- マヂ、やさしい人ばっかりのコミュニティ
- あなたの困ったをきっと解決してくれるでしょう
-
NervesJP Slack workspaceでは、NervesやIoTが好きな愉快なfolksたちがあなたの訪れを歓迎します
- たくさんのコミュニティがあります
(EDI/fukuoka.ex/kokura.ex & LiveView JP の @piacerex さん作)
Elixirコミュニティに初めて接する方は下記がオススメです
Elixirコミュニティ の歩き方 -国内オンライン編-
https://speakerdeck.com/elijo/elixirkomiyunitei-falsebu-kifang-guo-nei-onrainbian
(piyopiyo.ex & エリジョ の nakoさん(@kn339264) 作、素敵な資料)
Elixirのイベント情報
@koga1020 さんが作成されたイベントカレンダーがあります。
https://elixir-jp-calendar.fly.dev/
気になるイベントにはぜひ参加してみましょう!!!
上記サイトの解説記事はこちらです。
I organize autoracex.
And I take part in NervesJP, fukuoka.ex, EDI, tokyo.ex, Pelemay.
I hope someday you'll join us.
We Are The Alchemists, my friends!