SlideShare a Scribd company logo
How to learn Elixir,
How to adopt Elixir.
おーはら@ohrdev
Who are you?
• おーはら(ohr486)
• Tiwtter: @ohrdev
• Community: tokyo.ex, JapanElixirAssociation,
ElixirConfJapan(2017/2018)
• Work: 目黒の会社でサービス基盤を作ってます
• Like: 寺社仏閣, 仏像鑑賞, 仏像制作, VR, FF14(白60)
• Like Lang: 日本語, Lisp, Erlang
Agenda
• 今日の発表のゴール
• 誰に向けた発表か
• なぜElixir?
• 習熟度レベル
• 壁を突破する為には
• どうElixirを現実で適用していくか
• まとめ
今日の発表のゴール
• Elixirを使ってみようかなという気になる
• Elixirを使うべき(使っても良い)タイミングを知る
• (このあとの懇親会で)気持ち良くお酒を飲むための準備が整う
誰に向けた発表か
• Elixirという言語がある事は知っているが、触ったことが無い
• 最近Elixirを触りはじめた
• チュートリアルの後に何をすれば良いのかわからない
• 社内にElixirを導入したい
• 仕事でElixirを使いたい
なぜElixir?
• 問題解決の手段として
• メリット・デメリット、得意不得意はある、そのうえで、
• 得意な分野: 可用性を求められるシステム(落ちないサーバーなど)
• 不得意な分野: スピードを求められるシステム(大規模数値計算など)
• 現在では代わりとなるツール・言語はそこそこ存在する
• ただし、全知万能のX言語は存在しない
• エンジニア・プログラマとしての成長として
• 違う考え方、パラダイムを知るの事で問題解決の引き出しが増える
• アクターモデル、Shared Nothing Architecture
• 関数プログラミング、マクロ、プロトコル
• 並行プログラミング、OTP
習熟度レベル
• Elixirを触ったことが無い
• Elixirをインストールした
• チュートリアルを終えた
• アプリを作ってみた
• WebAppを作ってみた
• ライブラリを作ってみた
• 仕事で使ってみた
見えない壁
見えない壁
• 適当な問題(課題,不満,欲求)
• モチベーション(有限)
• 組織的な課題(システムの要件)
• 組織に対する説得(トレンド,上司)
• リスクの管理(人材,成功確率)
• モチベーション(有限)
Level.1
Level.2
Level.3
壁を突破する為には(level. 1 |> 2)
• 適当な問題
• 並列処理が効くツール
• クローラー
• チャット・コミュニケーションアプリ
• Mastodonクローン(?)
• etc
• ライブラリ制作
• マクロを使う必要がある(メタプログラミング)
• (注意)マクロは強力だが、使いすぎに注意、マクロを使わなくて良いなら、*使うべ
きではない*
壁を突破する為には(level. 1 |> 2)
• 参考文献
• 「プログラミングElixir」
• https://www.amazon.co.jp/dp/B01KFCXP04/
• 「すごいErlangゆかいに学ぼう」
• https://www.amazon.co.jp/dp/B00MLUGZIS
• 「Metaprogramming Elixir」
• https://www.amazon.co.jp/dp/B00U1VU2GA
• 「Programming Phoenix 1.3」
• https://www.amazon.co.jp/dp/1680502263/
壁を突破する為には(level. 2 |> 3)
• 組織的な問題
• Elixirエンジニアの採用・教育
• ○: 今いるエンジニアを教育する
• ✖️: 採用しようとしても、そもそも居ない(非常に少ない)
• Elixirアプリの運用知見
• Webアプリに限って言えば、Railsアプリ運用と被る部分がかなり多い
• AWS/GCPに乗れば、ある程度カバーできる(負荷分散・監視・etc)
• 上司説得工数
• 素振り(社内ツールから)
• 技術的な問題ではなく社会学的な問題
• レベル(社内実績)を上げて、数字(ベンチマーク)で殴る
• 「そのサービスには本当にElixirは必要なのか?」を常に自問(やりたいから、だ
けではNG)
• 「Adopting Elixir」
壁を突破する為には(level. 2 |> 3)
• 参考文献
• 「マイクロサービスアーキテクチャ」
• https://www.amazon.co.jp/dp/4873117607
• 「Erlang in Anger」
• https://www.erlang-in-anger.com/
• 「Adopting Elixir」
• https://pragprog.com/book/tvmelixir/adopting-elixir
どうElixirを現実で適用していくか
• 既存システムからの差し替えの場合
• 一気に全システムをElixirにリプレースするのは危険!
• 言語・エコシステム・コミュニティの成熟度が高いとは言えない
• 部分的に、徐々に差し替えていくのが現実的
• 新規システムの開発の場合
• マイクロサービスとしてピンポイント適用がおすすめ
• ただし、マイクロサービスはサービス全体としての複雑度が高くなりやすいので、
アーキテクチャ設計は慎重に
• 得意不得意な事がはっきりしているので、メリットを生かせる箇所に
どうElixirを現実で適用していくか
• 組織のスケールが必要(Elixirを使える人を増やしていく)
• Elixirを使えるエンジニアを雇うのではなく、Elixirを使えるようにエン
ジニアを教育していくのが現実的
• アプリケーション
• ライブラリ開発
• チューニング
• インフラ
• オートスケーリング
• デプロイメント
• チューニング
• 設計
• 適用箇所の選定
• マイクロサービスアーキテクチャ
まとめ
• Elixirの習得、導入についてのお話をしました
• Hello, world から現実世界への適用までに2つの壁があります
• 「なぜElixirなのか?」は常に自問しましょう
• つづきは懇親会で!

More Related Content

More from Tsunenori Oohara

meguro.rb LT
meguro.rb LTmeguro.rb LT
meguro.rb LT
Tsunenori Oohara
 
Elixir解答
Elixir解答Elixir解答
Elixir解答
Tsunenori Oohara
 
パンチラに関する考察
パンチラに関する考察パンチラに関する考察
パンチラに関する考察
Tsunenori Oohara
 
Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486
Tsunenori Oohara
 
Elixirハンズオン-2017-03-11
Elixirハンズオン-2017-03-11Elixirハンズオン-2017-03-11
Elixirハンズオン-2017-03-11
Tsunenori Oohara
 
Re:デブ デブナイト vol.2 LT
Re:デブ デブナイト vol.2 LTRe:デブ デブナイト vol.2 LT
Re:デブ デブナイト vol.2 LT
Tsunenori Oohara
 
失敗という概念が存在しない退屈なweb開発
失敗という概念が存在しない退屈なweb開発失敗という概念が存在しない退屈なweb開発
失敗という概念が存在しない退屈なweb開発
Tsunenori Oohara
 
Tokyoex6 EEx
Tokyoex6 EExTokyoex6 EEx
Tokyoex6 EEx
Tsunenori Oohara
 
running-elixir-in-production
running-elixir-in-productionrunning-elixir-in-production
running-elixir-in-production
Tsunenori Oohara
 
hello waf, hello phoenix
hello waf, hello phoenixhello waf, hello phoenix
hello waf, hello phoenix
Tsunenori Oohara
 
tokyo.ex3 LT
tokyo.ex3 LTtokyo.ex3 LT
tokyo.ex3 LT
Tsunenori Oohara
 
running web app on elixir
running web app on elixirrunning web app on elixir
running web app on elixir
Tsunenori Oohara
 
Elixir lang bootstrap
Elixir lang bootstrapElixir lang bootstrap
Elixir lang bootstrap
Tsunenori Oohara
 
Elixirについて私が知ってる二、三の事柄
Elixirについて私が知ってる二、三の事柄Elixirについて私が知ってる二、三の事柄
Elixirについて私が知ってる二、三の事柄
Tsunenori Oohara
 
elixir in production
elixir in productionelixir in production
elixir in production
Tsunenori Oohara
 
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Tsunenori Oohara
 
地獄Spec
地獄Spec地獄Spec
地獄Spec
Tsunenori Oohara
 

More from Tsunenori Oohara (17)

meguro.rb LT
meguro.rb LTmeguro.rb LT
meguro.rb LT
 
Elixir解答
Elixir解答Elixir解答
Elixir解答
 
パンチラに関する考察
パンチラに関する考察パンチラに関する考察
パンチラに関する考察
 
Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486
 
Elixirハンズオン-2017-03-11
Elixirハンズオン-2017-03-11Elixirハンズオン-2017-03-11
Elixirハンズオン-2017-03-11
 
Re:デブ デブナイト vol.2 LT
Re:デブ デブナイト vol.2 LTRe:デブ デブナイト vol.2 LT
Re:デブ デブナイト vol.2 LT
 
失敗という概念が存在しない退屈なweb開発
失敗という概念が存在しない退屈なweb開発失敗という概念が存在しない退屈なweb開発
失敗という概念が存在しない退屈なweb開発
 
Tokyoex6 EEx
Tokyoex6 EExTokyoex6 EEx
Tokyoex6 EEx
 
running-elixir-in-production
running-elixir-in-productionrunning-elixir-in-production
running-elixir-in-production
 
hello waf, hello phoenix
hello waf, hello phoenixhello waf, hello phoenix
hello waf, hello phoenix
 
tokyo.ex3 LT
tokyo.ex3 LTtokyo.ex3 LT
tokyo.ex3 LT
 
running web app on elixir
running web app on elixirrunning web app on elixir
running web app on elixir
 
Elixir lang bootstrap
Elixir lang bootstrapElixir lang bootstrap
Elixir lang bootstrap
 
Elixirについて私が知ってる二、三の事柄
Elixirについて私が知ってる二、三の事柄Elixirについて私が知ってる二、三の事柄
Elixirについて私が知ってる二、三の事柄
 
elixir in production
elixir in productionelixir in production
elixir in production
 
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
 
地獄Spec
地獄Spec地獄Spec
地獄Spec
 

Recently uploaded

iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
kitamisetagayaxxx
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
ARISE analytics
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
Osaka University
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 

Recently uploaded (10)

iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 

how-to-learn-elixir