Rust LT Onlineの参加レポート
更新日時:
はじめに
PHPとJavaScriptを触ってきて3年が経ち、そろそろ他の言語も学ぼうと思っていました。
最近、音声テキストチャットアプリケーションの Discord が実装言語を Go から Rust へ変えたニュースを見かけたり、デバイスの低レベルの制御を行うときに Rust の名前が上がってきたりしていたので興味を持っていました。
しかし、自分は Rust に関する知識がほぼゼロだったこともあり、いきなり本格的な Rust の勉強会に参加することはハードルが高かったです。
そんな中、今週の月曜日に Rust に関することであれば何でも発表してもいいオンラインLTが開かれていたので知識ゼロでも得られるものはあると思い、参加してみました。
イベント概要
当イベント、 Rust に関することであれば何でもLTをして良いというイベントです。
LTテーマはRustに関連すればなんでもOKです! (初心者縛りなどではないです。)
開催されるまで発表タイトルが公開されなかったので、どんな内容が聞けるのかを楽しみにしていました。
LT
今回のLTは以下の内容を扱った会となりました。
Rustトレイトの紹介- Introduction of Plotters
- RustでAPI連携する社内ツール作ってみました
Rust トレイトの紹介
Rust には Class がなく、 trait という単位(正確には trait object)でポリモーフィズムを実現できます。
PHPにも trait というキーワードがあったため、個人的には親和性のある話題のLTでした。
LTではじめて知ったこととしては以下のことがありました。
- Rust自体で提供しているスタンダードなtraitがある
- 名前、定義、戻り値で構成されている
- traitのパフィーマンスを考慮して、エラーが発生した場合、最大1回だけ処理するものもある
- 継承(Derive)できるトレイトが存在する
trait に関して知らない人にもわかりやすく、その使いどころに関して説明をしていただきました。
Introduction of Plotters
Rust で使えるライブラリ(Plotter)について紹介をしていただきました。
データを可視化するときに使えるライブラリで、出力方法にWebAssemblyも対応しているものです。
Plotter を使えば、シンプルなチャートを書き出すことも簡単にできるみたいで、サンプルコードをもとに実装方法を説明いただきました。
スライド3枚目のサンプルコードを以下の実装していたとのことです。
- 出力形式の定義
- チャートの定義
- チャートの出力
他にも、「画像検出のライブラリと併用する時の例」や「図形の書き出し」のサンプルコードについても簡単に説明していただき、 Rust を活用した実装のイメージがなんとなく分かりました。
RustでAPI連携する社内ツール作ってみました
座学で Rust を学びながら、現場で活用するものを自分で組んだ方の話でした。
Slackのスラッシュコマンドで勤怠の打刻をするツールを作成した経験をもとにできあがったもののアーキテクチャ図を見せながら発表していただきました。
実装時に Rust 以外の openssl や gcc のエラーで苦労したり、 JWT のトークンを扱っていたりした話からツールを作る中で周辺技術の勉強にもなった話が聞けました。
他には Serde という Rust のデータ構造を効率的に扱うためのフレームワークを使っていた話からLTが盛り上がり、人気のあるツールだと感じました。
ちなみに、ソースコードが気になる方は以下のリポジトリから確認ができます。
最後に
Rust に関する知識がほぼゼロな状態でLTの勉強会へ参加してみました。
事前知識がない状態でも他の言語にある概念が Rust にもあり、比較しながら聞くことができました。
他にも ベクター という概念を Rust ではよく扱っているみたいで、勉強でつまづいたときのキーワードとして検索できるものが増えました。
また、LTの中で今回のイベントを主催したコミュニティのSlackにて、初心者チャンネルで聞きながら勉強したという話に興味を持ち、さっそく自分もコミュニティに入ってみました。
気になる方は以下の Rust グループページからSlackに登録してみてください。
コメントする