Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
piyopiyo.ex#15 春のElixir入学式
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
nako@9時間睡眠
April 01, 2023
Programming
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
piyopiyo.ex#15 春のElixir入学式
piyopiyo.ex #15:春のElixir入学式!のスライドです
https://piyopiyoex.connpass.com/event/276636/
nako@9時間睡眠
April 01, 2023
More Decks by nako@9時間睡眠
See All by nako@9時間睡眠
Nervesで令和のLチカ?!と 大須でパーツお買い物
nako_sleep_9h
0
120
NervesHubでrp4に自動デプロイ
nako_sleep_9h
0
80
Elixir国内コミュニティと アンチパターン回避
nako_sleep_9h
3
150
「推し」について話すLT〜NOKIA、Elixir〜
nako_sleep_9h
0
140
YouTubeライブ対談からのエッジコンピューティング入門
nako_sleep_9h
1
220
おすすめエンジニアコミュニティ
nako_sleep_9h
0
320
ElixirDesktopを楽しむための前説
nako_sleep_9h
0
450
Livebookを楽しむための前説
nako_sleep_9h
0
280
Nx、Axonを楽しむための前説
nako_sleep_9h
0
260
Other Decks in Programming
See All in Programming
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
270
まずはコードより業務と向き合う:テーブル解体のためにPdMを呼んだ話
sakawe_ee
0
140
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
870
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
180
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
710
[DroidKnights 2026] Workflow AX: From Auto-Documented Policies to E2E Testing
raeminkang
0
510
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
1
270
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
190
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
400
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
340
AmebaブログはKMPから卒業します
kmars0605
0
320
Featured
See All Featured
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
520
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Un-Boring Meetings
codingconduct
0
490
Believing is Seeing
oripsolob
1
270
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
60k
The untapped power of vector embeddings
frankvandijk
2
2k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
730
Raft: Consensus for Rubyists
vanstee
143
7.8k
Test your architecture with Archunit
thirion
2
2.5k
Skip the Path - Find Your Career Trail
mkilby
1
280
Transcript
piyopiyo.ex 春のElixir入学式 ようこそElixirへ! 2023/4/1 ver0.1 nako
Elixirは どんな言語?
Elixirはどんな言語? • 関数型に影響を受けた動的なプログラミング言語。 • シンプルな構文で、文法はRubyから大きく影響を受けています。 ◦ Elixirの作者のJosé(ジョゼ)はRuby on Railsのコミッター •
拡張性や保守性に優れたアプリケーションを構築するために設計されています。 ◦ 拡張性とは、機器やソフトウェア、システムなどの使用を開始した後に、その中核部分に大きな変 更や交換、影響を伴わずに、機能追加や性能向上を行えること。 ◦ 保守性とは、機器やソフトウェア、システムなどが備える特性の一つで、所定の条件で修理や交換 などの保守作業を実施することで、機能や状態が維持される性質。また、その容易さ。
Elixirはどんな言語? • Elixirは、低遅延、分散、耐障害性があるシステムの構築で知られるErlang VM上で 実行されます。 ◦ スウェーデンの大手通信機器メーカー、エリクソン( Ericsson)によって開発され、電話交換機の制 御システムなどの通信アプリケーションの開発に使用されています。 ◦
Erlang VM(Virtual Machine)は、Erlangプログラムを実行するための仮想マシンです。 Erlang VM は、Erlang言語で書かれたプログラムを実行するためのランタイム環境を提供します。 ◦ オープンソースとして 1998年に公開されました。公開されてから 25年経過 • これらの機能とElixirのツールにより、開発者はWeb開発、組込みソフトウェア、 データパイプライン、マルチメディア処理など、幅広い産業分野で生産性を向上させ ることができます。
Elixirはどんな言語? • 海外サービスでは、SlackやSpotify、Discord、WhatsAppなどに使われています。 ◦ どれも大量ユーザーを抱えるネットワークサービス
Elixirは 書いて面白い
素晴らしき |>(パイプ)演算子 |>演算子は、左の項の式の結果をとって、右の関数呼び出しの第一パラメータとして渡 すことができる。 people = DB.find_customers orders = Orders.for_customers(people)
tax = sales_tax(others, 2022) filing = prepare_filing(tax) filing = DB.find_customers |> Orders.for_customers |> sales_tax(2022) |> prepare_filing
パターンマッチ① 値(右辺)がパターン(左辺)と同じ構造を持ち、パターンのそれぞれの項が値の中の対 応する項とマッチするとき、パターンマッチと呼びます。 iex(1)> list = [1, 2, [3, 4,
5]] [1, 2, [3, 4, 5]] iex(2)> [a,b,c] = list [1, 2, [3, 4, 5]] iex(3)> a 1 iex(4)> b 2 iex(5)> c [3, 4, 5]
パターンマッチ② FizzBazzを例に defmodule FizzBazz do def upto(n) when n >
0 do 1..n |> Enum.map(&fizzbazz/1) end defp fizzbazz(n) do cond do rem(n, 3) == 0 and rem(n, 5) == 0 -> “FizzBazz” rem(n, 3) == 0 -> “Fizz” rem(n, 5) == 0 -> “Bazz” true -> n end end end iex(5)> FizzBazz.upto(16) [1, 2, "Fizz", 4, "Bazz", "Fizz", 7, 8, "Fizz", "Bazz", 11, "Fizz", 13, 14, "FizzBazz", 16]
パターンマッチ② FizzBazzを例に defmodule FizzBazz do def upto(n) when n >
0, do: 1..n |> Enum.map(&fizzbazz/1) defp fizzbazz(n), do: _fizzword(n, rem(n, 3), rem(n, 5)) defp _fizzword(_n, 0, 0), do: “FizzBazz” defp _fizzword(_n, 0, _), do: “Fizz” defp _fizzword(_n, _, 0), do: “Bazz” defp _fizzword( n, _, _), do: n end 関数呼び出しで パターンマッチが使える!
Elixirで なんでも出来る?!
Elixirはなんでも出来る! • Phoenix ◦ ElixirのデファクトスタンダードなWebフレームワーク • LiveView ◦ サーバサイドだけでReact/Vue.jsと同じリアルタイムフロント(SPA) •
ElixirDesktop ◦ FlutterやReactNative同様、Android/iOS両ネイティブアプリ開発 • Axon ◦ Keras/PyTorch相当のスマートなディープラーニング開発が可能に • Livebook/Kino/VegaLite ◦ JupyterNotebook/Colaboratoryを超えるWeb上開発UX • Explorer ◦ Pandas以上の直感的なデータ操作/処理性能、 Nx行列もシームレスに操作 • Bumblebee ◦ ElixirでStable DiffusionやBERT等の様々な先端ディープラーニング • Nerves ◦ IoTフレームワーク まだまだ他にもあるよ!!!
Elixirはなんでも出来る! • Phoenix ◦ ElixirのデファクトスタンダードなWebフレームワーク • LiveView ◦ サーバサイドだけでReact/Vue.jsと同じリアルタイムフロント(SPA) •
ElixirDesktop ◦ FlutterやReactNative同様、Android/iOS両ネイティブアプリ開発 • Axon ◦ Keras/PyTorch相当のスマートなディープラーニング開発が可能に • Livebook/Kino/VegaLite ◦ JupyterNotebook/Colaboratoryを超えるWeb上開発UX • Explorer ◦ Pandas以上の直感的なデータ操作/処理性能、 Nx行列もシームレスに操作 • Bumblebee ◦ ElixirでStable DiffusionやBERT等の様々な先端ディープラーニング • Nerves ◦ IoTフレームワーク まだまだ他にもあるよ!!! Webサービス以外にも IoTやAI・ML、データ分析、 デスクトップアプリなど Elixirで様々なジャンルの技術を 扱うことができます!
エンジョイElixir!