検索条件

キーワード
タグ
ツール
開催日
こだわり条件

タグ一覧

JavaScript
PHP
Java
Ruby
Python
Perl
Scala
Haskell
C言語
C言語系
Google言語
デスクトップアプリ
スマートフォンアプリ
プログラミング言語
U/UX
MySQL
RDB
NoSQL
全文検索エンジン
全文検索
Hadoop
Apache Spark
BigQuery
サーバ構成管理
開発サポートツール
テストツール
開発手法
BI
Deep Learning
自然言語処理
BaaS
PaaS
Iaas
Saas
クラウド
AI
Payment
クラウドソフトウェア
仮想化ソフトウェア
OS
サーバ監視
ネットワーク
WEBサーバ
開発ツール
テキストエディタ
CSS
HTML
WEB知識
CMS
WEBマーケティング
グラフィック
グラフィックツール
AR
マーケット知識
セキュリティ
Shell
IoT
テスト
Block chain
知識

fukuoka.ex#47:Elixirお茶会〜Phoenixを学ぼう編(オンライン)

  • JavaScript
  • Ruby
  • Ruby on Rails
  • Elixir
  • Erlang
  • webpack
  • ビッグデータ
  • 機械学習
  • AWS
  • Google Cloud Platform
  • Azure
  • HTML
  • AMP
  • データ分析
  • GPU
  • IoT
  • FPGA
  • 数学
2021/10/26(火)
19:30〜21:00

主催:fukuoka.ex/kokura.ex/EDI - FukuokaElixirCommunity

【お知らせ】本イベントはオンラインでの開催となります。参加者への情報欄にzoom URLを記載していますので、そちらよりご参加ください

fukuoka.ex#47:Elixirお茶会〜Phoenixを学ぼう編

「Elixir」をテーマに、アルケミスト(alchemist: Elixirを利用する人の愛称です)がゆるっと集まる「Elixirお茶会」を開催します 🍵

  • Elixirで作っているものがあるので共有したい
  • エラーでハマっていて質問がしたい
  • コードの書き方に関して議論がしたい

などなど、Elixirに興味関心がある人でゆるっと集まり、好きにお話ししながら楽しい時間を過ごしましょう。

今回は、「Elixirお茶会〜Phoenixを学ぼう編」と題して、ElixirのWebフレームワークであるPhoenixをテーマに絞り、オンラインでの登壇とディスカッションを行います。

普段からPhoenixを触っているという方、これから触ってみたいと考えている方、どなたでも大歓迎です! ゆるく運営しておりますので、ぜひお気軽にご参加ください!

また、LT枠も募集しております。Phoenixに関わりがあるテーマであれば何でも構いません。 話せるぞ!という方はぜひLT枠よりお申し込みください!

登壇枠埋まりました!ご応募ありがとうございます!

開催:2021年 10月26日(火) 19:30〜21:00

  • Zoomによるフルリモートでの開催です
  • オフラインでの会場はございません
  • あらかじめzoomのインストールをお願いします
  • 公式サイト: https://zoom.us/jp-jp/meetings.html
  • 参加者申し込み後、参加者への情報欄に記載しているURLよりご参加ください
  • 注意: 前回のイベントと異なり、開始時間を30分ずらして19:30開始としています。ご注意ください

タイムテーブル

時間 発表者 内容
19:30-19:35 主催者 ご挨拶/趣旨説明
19:35-19:55 koga1020 Phoenix.PubSubの紹介と活用を考える
19:55-20:15 mokichi Phoenix1.6で標準搭載されたLiveViewに入門してみよう
20:15-20:35 the_haigo LiveViewとGoogleMapAPIで遊んでみよう
20:35-20:55 piacere phx_gen_authで会員制サイトをライブコーディングする20分
20:55-21:00 ALL Q_A。ディスカッション
21:00~ ALL 閉会〜フリータイム

持ち物

お好きなお菓子とお飲み物をお忘れなく🍵 🍡

fukuoka.ex Slack ワークスペース

elixir.jpワークスペースの招待URL: https://t.co/jdWYtTwKIM?amp=1

質問等ございましたら、チャンネル #fukuoka-ex でご質問よろしくお願いします!

福岡Elixirコミュニティ「fukuoka.ex」とは?

「fukuoka.ex」は、大量アクセスのあるWeb・APIサーバ構築や、ビッグデータ分析/AI・機械学習向けデータ加工といった、「膨大なアクセスやデータの高速処理」と「高い開発効率」を両立できる関数型プログラミング言語「Elixir」と、そのWebアプリケーションフレームワーク「Phoenix」を福岡で広め、ワイワイと盛り上げていくコミュニティです

Elixirは、シンプルな言語仕様により、「プログラミングが初めて」という方でも比較的とっつきやすく、同時に、関数型言語にありがちな複雑さ(トリッキーな構文、数学やアカデミックに走り過ぎる、等)無しに関数型の強力さだけを抽出した、現実のアプリケーション開発を行うエンジニアに寄り添ってくれる言語です

Phoenixは、Webアプリケーションの世界では、最もメジャーな「Ruby on Rails」を作っていたメンバーによって開発された、大量アクセスと高速分散の捌きが得意なWebアプリケーションフレームワークで、Rails同等の高度なWebアプリ開発を、とても気軽に行えます(中でも、WebSocket性能は、あらゆる言語のFW中でも最速)

「fukuoka.ex」では、MeetUp(登壇会/勉強会)やプログラミング入門会、もくもく会、ハッカソン等を通じて、「Elixir/Phoenixの習得機会」と「実際のアプリケーション開発に役立つノウハウ」の提供を定期的に行うことで、福岡でのElixirプロダクション採用を増やし、Elixirに触れることで得られる「プログラミングの楽しさ」を福岡のエンジニアに体感する機会を増やすことをビジョンに掲げています

~ Elixir/Phoenixの現状について ~

Elixir/Phoenixにとって、2016~2018年は、

  • マルチコアのCPU全てをフル活用できる「Flow」や「GenStage」
  • 動的生成されたマルチプロセスを監視・自動再起動できる「Dynamic Supervisor」
  • Webフレームワーク「Phoenix」のHTTP/2対応やwebpack対応
  • IoTコアライブラリ「Nerves」と、クラウド上からファームウェア更新を叶える「NervesHub」

といったElixirならではの革新的な独自機能を出しつつ、「Elixir/Phoenixのみで、Webプロダクト開発やSI案件開発を不自由無く行える」フェーズへと進化しています

Githubに登録されているElixirライブラリも、36,000件を突破し、2年前の7,000件程度と比べ、5倍以上へと急増しました

2014~2015年付近は、Elixirも未だ未成熟で、「Erlangを覚えなければElixirは使えない」という認識が一般的でしたが、現状は、Elixir単独で充分にプロダクト開発/SI案件開発を行える状況へと変わってきています

また、2017年にはGCP(Google Cloud Platform)でのElixir採用、2018年にはAWSでのカスタムランタイム採用、といった、大手クラウドでのElixir採用という追い風もありました

福岡においても、Elixir/Phoenixをプロダクト開発/SI案件開発で採用されるケースが増え、他言語よりも明らかにレスポンス速度が速いWeb+DBが数日で構築できた事例や、1年以上ダウンせずに運用が回った事例など、実運用の実績も増えています(福岡以外でも、SlackやLINE、ニコニコ動画、mixi、gumi等での活用事例もあります)

全世界で見れば、2014年は、200社程度しか採用していなかったのが、2016年は1,100社を超え、現在は、ゲームサーバだけに限らず、フィンランドやスウェーデン、イギリスを始めとする、金融/証券/SNS/メッセージング基盤などの分野で活用されており、世界的にも有名なSlackやDiscordでも積極的に活用されています

そしてElixir/Phoenixにとっての2019年は、以下を完備し、スマホ開発やクラウドへの接続性も大幅に増強されました

  • Phoenixで、JavaScript無のElixirのみで、フロント処理を動的生成できる「LiveView」
  • 対障害性を備え、Amazon SQSとも接続できる並列ライブラリ「Broadway」
  • Prometheus等の外部監視系への容易な接続を実現する「Telemetry」

今は、まさにElixir/Phoenixを始めるには、もっとも美味しいタイミングと言えるでしょう

海外と福岡のおける導入企業/規模/事例は、以下fukuoka.exポータルにて紹介しています
https://fukuokaex.fun

更に、fukuoka.exでは、これまでの言語では表現できなかったような次世代の高生産性Web/API開発スタイルの確立や、大規模インフラでもDBサーバをネックにしないためのスケールアウトの仕組み、ElixirとGCP上のAIエンジンを繋いだ画像解析システム、数倍のパフォーマンスを発揮できるGPU/FPGA活用、Elixirプロセスよりも更に軽量なプロセスライブラリ実装、ElixirによるElixirコンパイラ開発といった、先端領域でのElixir活用も、今まさに熱く展開しています

「でもElixirって、使いづらくて覚えにくい『関数型言語』でしょ?」

一般的に「関数型言語」と言えば、言語の習得が難しく、組織として選定しづらいイメージがありますが、Elixirは、言語仕様や構文がシンプルかつ簡単なので、「育成や習得の容易性」を切り捨てること無く、関数型のメリットも享受できます

関数型のメリットは、以下の通りです

  • 状態が無いことで、同じ入力を何度行っても同じ出力しか返さないので、意図しない挙動にならない
  • 変数がイミュータブル(作成後にその状態が不変)なので、マルチスレッドや並行処理で競合しない
  • プログラム構造が小さな関数群で構成され、シンプルに保たれるため、変更容易性が向上する
  • 少ないコードで、凝縮度の高い高度な処理が書ける
  • リスト設計に慣れていくと、他言語で数百行かかる複雑な処理も、数行のコードで組むことが可能になる
  • できあがったコードは、オブジェクト指向言語の1/100の量になることもあり、見た目も100倍エレガント
  • オブジェクト指向言語経験者の移行は大変(関数型全般に言える)だが、移行後は、何倍も生産性が高まる

更に、「Elixirならでは」の以下メリットも上乗せされます

  • 習得がカンタンなので、プログラミング経験が無い入門者・初級者向け
  • 関数の引数でのパターンマッチが可能で、呼出時の事前条件チェックや関数呼び分けには、快感すら感じる
  • JSONパースが得意なので、Google APIやBacklog API等、様々なWeb APIとの連携に強い
  • マルチコアCPUを簡単にフル活用できる
  • マルチクラスタ(AWS、GCP、Azure)のスケールアウトも楽々実現
  • 長期間の安定運用を実現してきた「Erlang VM」の元で動作する
  • データ変換とバイナリデータ検索に特化しているので、ファイルヘッダ解析やIoT/ドローン制御にも向いている

実際に、Elixirがどの位カンタンに習得できるかと言うと、たった3つの関数を覚えるだけ、30分~1時間もあれば、Web+DB/Web+API/Webグラフ表示まで実現できてしまいます

通常の関数型言語と一線を画す、このElixir/Phoenixのパワーを直接体感してみたい方は、「ExcelでElixirマスター」シリーズをご覧ください