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に登録してみてください。
コメントする