【kokura.ex】「ElixirドキュメントやTypespecsを書いてみよう!」勉強会 #4

2022/02/09(水)08:30 〜 09:30 開催
ブックマーク

イベント内容

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


kokura.ex「ElixirドキュメントやTypespecsを書いてみよう!」勉強会

開発言語Elixirをわいわいと盛り上げていく技術コミュニティkokura.exがお送りするオンライン勉強会です!

概要

本イベントは、Elixir開発におけるドキュメント作成作法やTypespecsの書き方ノウハウ等の理解・共有を目的とした、OSS公開視野の勉強会です
(@zacky1972先生のレクチャー有!)

この会の目的

  • 参加者各人が、Elixir開発におけるドキュメント作成作法Typespecs 等の書き方に関する理解を深められること
  • および、参加者各人が 実際にOSSを公開する前提 で、そちらに載せるドキュメントやTypespecs等について本勉強会で得た知見を反映させ、OSS品質の向上に役立てられるようになること

今回のテーマ

  • 前回のおさらい(Elixir公式モジュールのhexdocs, ex_doc
  • Elixir英語ドキュメントを実際に手を動かして書いてみる

を予定しています!

注意事項

  • Elixir開発者 中級者 向けの内容となります
  • 本勉強会の内容は、録画して「kokura.ex YouTube チャンネル」で公開予定です! 質疑応答も含めて公開しますので,公開されても構わないという方のみご参加をお願いします
    今回からYouTube録画はしない方向です。 参加者各人で自作ライブラリを持ち寄り、わいわい話しながらOSS公開に向けてドキュメント・Typespecsを書いていくスタイルを想定しています。
    自作ライブラリがない方でも、こちらで準備したサンプルライブラリがありますので、そちらをcloneしてアレンジいただくなど可能です。

タイムテーブル

時間 内容
AM 8:30 スタート(Zoom)
AM 9:30 終了
  • 1時間程度を予定しておりますが、終了時間が前後する場合があります(途中退席自由)

kokura.ex

小倉Elixirコミュニティ「kokura.ex」は、「高速処理性能」と「高い開発効率性」を両立できるプログラミング言語「Elixir」と、そのWebアプリケーションフレームワーク「Phoenix」を北九州で広め、ワイワイと盛り上げていくコミュニティです

これから先端技術をやりたい方や、最新のプログラミングを学びたい方、未来に向けてITに強くなりたい方など、技術への興味レベルが高い方や、プログラミングに関心が高い方のご参加を歓迎します

kokura.exもくもく会のご質問用slackチャンネル

elixir.jpワークスペースの招待URL

https://elixirjp.slack.com/join/shared_invite/enQtODE0NjM3NTIyNTMzLTU5NmViZDE4N2Q3MGUyMmI5YTdlNmQ2ZDI4ZDgxZGZiYTVlYmJjOTMzYzk2NGUyMjBhMTBiNDdjYTg3ZjhmYWI

こちらからご登録をお願いします

  • ききたいこと
  • Elixirプログラミングで詰まったところ
  • 個人開発でつくったものをお披露目したい!等

でてきましたら、チャンネル#kokura-ex でご発言よろしくお願いします!

「Elixirって、今どんな感じなの?」

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

  • マルチコアの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

更に、kokura.ex/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マスター」シリーズをご覧ください


ご不明点がありましたら、connpassのフィードや、上記kokura.exのslackチャンネルよりお問い合わせください。

注意事項

※ こちらのイベント情報は、外部サイトから取得した情報を掲載しています。
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。

関連するイベント