LoginSignup
11
1

闘魂Elixir ーー 書籍『Elixir実践入門』のご紹介(書きました!)

Last updated at Posted at 2024-05-22
1 / 16

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

$\huge{闘魂とは己に打ち克つこと。}$
$\huge{そして闘いを通じて己の魂を磨いていく}$
$\huge{ことだと思います}$


はじめに

2024年5月21日(火)に、「e-ZUKA Tech Night vol.62 -STORES襲来!-」というイベントが行われます。

本資料は、そのイベントでの私のLT(Lightning Talks)で使う資料です。
LT(Lightning Talks)とは、短いプレゼンテーションです。1
e-ZUKA Tech Nightでは、5分となっております。

(テックイベントに初参加の新入生などがいるのでLTとは何かを注釈しています。)


自己紹介

  • 九州工業大学 情報工学部 機械システム工学科
  • 学籍番号「97234070」(1997年に入学という意味です)
  • 名乗るほどのものではございません
  • Elixir ConfのTシャツを着てきました(USには行っていません。通販で買いました)

書籍『Elixir実践入門

  • 2024年2月24日発売
  • 技術評論社さん
  • 名乗るほどのものでもない私の名前「山内修」が執筆陣に並んでいます(つまりは、書きました!)

image.png


What is Elixir?

  • 関数型言語(Haskellは、関数型言語)
  • Erlang VMの上で動く
  • 並列処理に優れている
  • 耐障害性を備えている
  • アクターモデル
  • Rubyの弟分

(なにを言っているのかわかりませんね)


論よりRun🚀🚀🚀

黒い画面編

Dockerを使ってイゴかします(※西日本地域の方言で「動かします」の意です)。

docker pull hexpm/elixir:1.16.2-erlang-26.2.5-alpine-3.17.7

docker run --rm -it hexpm/elixir:1.16.2-erlang-26.2.5-alpine-3.17.7

コンテナが立ち上がったら、IExという interactive shellを起動します。

/ # iex

以下のプログラムを迷わず打ち込んでください。
(迷わず行けよ 行けばわかるさ)

iex> Mix.install([{:req, "~> 0.4.0"}])

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

ReqはHTTPクライアントライブラリです。

|>は、パイプ演算子と呼ばれます。前の計算結果を次の関数の第1引数に入れて実行してくれます。

Elixirタグが付いた直近20件のQiita記事を取得するプログラムです。


Livebook編

当日のデモはこちらでします。

docker run --rm -p 8080:8080 -p 8081:8081 --pull always ghcr.io/livebook-dev/livebook

Visit: http://localhost:8080/?token=secret

secretは実行の都度ランダムに変わりますので、実行ログをよく見てください。

New notebook

setupセル
Mix.install([
  {:kino, "~> 0.12.3"},
  {:req, "~> 0.4.0"}
])
Elixirセル
"https://dog.ceo/api/breeds/image/random"
|> Req.get!()
|> Map.get(:body)
|> Map.get("message")
|> Req.get!()
|> Map.get(:body)
#|> dbg()

迷わず実行(evalutate: 評価)してください。
いろいろな犬の絵がランダムに表示されます。

スクリーンショット 2024-05-21 14.02.16.png


dbg()を有効にすると、各関数が実行(評価)されたところまでの結果を確認できます。

スクリーンショット 2024-05-21 14.06.14.png


さいごに

関数型言語を何かひとつ習得しておくと、あなたのコーディングスキルの幅を広げてくれるでしょう。
そんな方にElixirはお勧めです。そして、その入門書に書籍『Elixir実践入門』をお勧めします。この本では、基本文法の説明から丁寧にはじめて、Web開発、機械学習、IoTへと実践を進めて行く、頼もしいガイドです。

image.png


私たちハウインターナショナルには、私を含め書籍の著者となっている人がゴロゴロ在籍しています。
あなたのLTをお待ちしております。あなたの話をぜひ聞かせてください。

会社紹介-2024-04-19.png


編集後記

このあと、 @tsuruoka91 さん、 @mnishiguchi さんの発表が続きました。


闘魂とは、 「己に打ち克つこと。そして闘いを通じて己の魂を磨いていくことである」 との猪木さんの言葉をそのまま胸に刻み込んでいます。
知っているだけで終わらせることなく、実行する、断行する、一歩を踏み出すことを自らの行動で示していきたいとおもいます。
アントニオ猪木さんのメッセージから元氣をもらったものとして、それを次代に語り継ぎ、自分自身が「闘魂」を体現するものでありたいとおもいます。


$\huge{元氣ですかーーーーッ!!!}$
$\huge{元氣があればなんでもできる!}$
$\huge{1、2、3 ぁっダァー!}$

  1. テックイベントに初参加の新入生などがいるのでLTとは何かを注釈しています。

11
1
1

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