More Related Content
最初のRailsアプリケーション「茶番(tyaban)」 Similar to how-to-learn-elixir (20)
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介 Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」 Elixir-Conf-Japan-2017-session-ohr486 やや関数型を意識した風Elixir/Phoenixご紹介 Nerves!? Elixir!?? 関数型言語でれっつIoT開発!! 清流elixirのこれまで-東海にElixir界の異端児が生まれた話- 160911 handson elixir_phoenix Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります 第4回 kochi.ex オン・オフラインミーティング Rubyのenum系高階関数を elixirでも使いたい Elixirで関数型言語の設計を学ぶ - daimon.ex 2024-09-20 Exineris Project by kochi.ex Elixir とか組込みとか (On Elixir and embedded systems) More from Tsunenori Oohara (13)
running-elixir-in-production running web app on elixir how-to-learn-elixir
- 2. Who are you?
• おーはら(ohr486)
• Tiwtter: @ohrdev
• Community: tokyo.ex, JapanElixirAssociation,
ElixirConfJapan(2017/2018)
• Work: 目黒の会社でサービス基盤を作ってます
• Like: 寺社仏閣, 仏像鑑賞, 仏像制作, VR, FF14(白60)
• Like Lang: 日本語, Lisp, Erlang
- 6. なぜElixir?
• 問題解決の手段として
• メリット・デメリット、得意不得意はある、そのうえで、
• 得意な分野: 可用性を求められるシステム(落ちないサーバーなど)
• 不得意な分野: スピードを求められるシステム(大規模数値計算など)
• 現在では代わりとなるツール・言語はそこそこ存在する
• ただし、全知万能のX言語は存在しない
• エンジニア・プログラマとしての成長として
• 違う考え方、パラダイムを知るの事で問題解決の引き出しが増える
• アクターモデル、Shared Nothing Architecture
• 関数プログラミング、マクロ、プロトコル
• 並行プログラミング、OTP
- 7. 習熟度レベル
• Elixirを触ったことが無い
• Elixirをインストールした
• チュートリアルを終えた
• アプリを作ってみた
• WebAppを作ってみた
• ライブラリを作ってみた
• 仕事で使ってみた
見えない壁
見えない壁
• 適当な問題(課題,不満,欲求)
• モチベーション(有限)
• 組織的な課題(システムの要件)
• 組織に対する説得(トレンド,上司)
• リスクの管理(人材,成功確率)
• モチベーション(有限)
Level.1
Level.2
Level.3
- 8. 壁を突破する為には(level. 1 |> 2)
• 適当な問題
• 並列処理が効くツール
• クローラー
• チャット・コミュニケーションアプリ
• Mastodonクローン(?)
• etc
• ライブラリ制作
• マクロを使う必要がある(メタプログラミング)
• (注意)マクロは強力だが、使いすぎに注意、マクロを使わなくて良いなら、*使うべ
きではない*
- 9. 壁を突破する為には(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/
- 10. 壁を突破する為には(level. 2 |> 3)
• 組織的な問題
• Elixirエンジニアの採用・教育
• ○: 今いるエンジニアを教育する
• ✖️: 採用しようとしても、そもそも居ない(非常に少ない)
• Elixirアプリの運用知見
• Webアプリに限って言えば、Railsアプリ運用と被る部分がかなり多い
• AWS/GCPに乗れば、ある程度カバーできる(負荷分散・監視・etc)
• 上司説得工数
• 素振り(社内ツールから)
• 技術的な問題ではなく社会学的な問題
• レベル(社内実績)を上げて、数字(ベンチマーク)で殴る
• 「そのサービスには本当にElixirは必要なのか?」を常に自問(やりたいから、だ
けではNG)
• 「Adopting Elixir」
- 11. 壁を突破する為には(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