FORCIA CUBEフォルシアの情報を多面的に発信するブログ

Shinjuku.rs #3を開催しました

2019.03.25

エンジニア Rust 勉強会

 旅行プラットフォーム事業部の遠藤です。

 去る3/12(火)にRustのLT会Shinjuku.rs #3を弊社会議室で開催しました。
前回(Shinjuku.rs #2)同様、イベントの様子をご報告します。

発表スライド

 皆さんのスライドはこちらです。

Rustでコマンドラインツールを作ろう | hiroendore

IMG_20190312_endo-min.jpg

 この発表は、私、エンジニア@フォルシアの遠藤が行いました。
私はプログラミングほぼ未経験で入社した新卒一年目で、今回が人生初めてのLTとなりました。

 LTの内容としては、clapというライブラリを使ってコマンドラインツールを作ってみた話をしました。Rustというと学習コストが高いイメージがありますが、チェーンメソッドオプション名やパターンを定義してやると、いい感じにマッチャーを書いてくれるので手軽にRustでコマンドラインツール作成を始めることができるなと感じました。

 とはいえ、実際の処理を書くところは慣れないことも多く難しかったです。例えば、ファイルやOption/Resultの扱いで詰まりました。返却値がOptionやResult型で返ってくることが多く、初めはそのことに慣れませんでした。しかし、ドキュメントや実際のコードを読んで、納得できました。あとはRustや各種Traitのバージョンの違いにも苦しめられ、色んなバージョンのドキュメントを読むのが大変でした。

 発表自体は単純な話でしたが、個人的には

  • 発表のためにテーマについて調査し、資料から学んだことを組み合わせて自分の知識にすること
  • 実際に理解したいメソッドのコードやドキュメントから仕様を理解すること
  • インプットした知識をまとめて、伝えること

という一通りの流れを体験できたことはとても勉強になりました。

 まだまだ知識も発表も未熟ですが、今後も積極的にこのような経験を積んでいきたいと感じました。
Rustをやってみたい皆さん、ぜひ一緒にコマンドラインツール書いていきましょう。

Rustから扱うAWS API | κeenさん

 今回、直前にLT枠のキャンセルが出てしまったのですが、keenさんが当日に「やります!」と言ってくださり、とても助かりました。ありがとうございました。
 AWSのAPIバインディングはRust版が公式提供されていないため、rusotoとというライブラリをご紹介いただきました。

 Rusotoの特徴として、膨大なAWS APIごとに構造体が定義されていて、必須項目以外はOption型になっているという話の中で、しれっと..Default::default()構造体更新構文(struct update syntax)を紹介いただきました。構文は検索しにくいので非常に助かります。

Visualization System in Rust | 山口 聖弘 さん

 ご自身のブログでも紹介されていますが、C++で実装していたCTFの可視化サーバを、OpenGL+Rustで再実装している話を発表いただきました。
 LinuxでもWindowsでも動くため、本番環境と開発環境の差分で苦しみにくいというメリットがあるとのことでした。
 また、GUIの知見としてDear ImGuiをご紹介いただきました。
Arc<Mutex<T>> 地獄にハマっているという課題に対して、会場からは channel を使えばよいのではというアドバイスがあり、いい勉強会だなと思いました。

RustでAPIサーバを作り始めた話 | ゆで卵さん

 actix-webdieselr2d2を使ってRustでAPI サーバを作り始めた話を発表いただきました。

 actix-webのサンプルにdieselとr2d2があるので、それを組み合わせて実装されているとのことでした。
 Rustを書きはじめて構造体::<型>::関数()という文法にびっくりしたと仰っていました。私も左辺にアノテーションするんじゃなくて右辺に書くのか!と思った記憶があります。

Miriについて | r-chaser53さん

 Rustのコンパイル時に使われているmiriについて発表いただきました。
miriは中間表現のインタプリタですが、下記のような目的で導入されたそうです。

  • コンパイル時間の短縮
  • 実行時間の短縮
  • 厳密な型検査のため

 miri触ってみたい人のためのDockerイメージを公開されています。
rust-lang-dev-items/miri at master · rchaser53/rust-lang-dev-items

セミコロン完全マスター | qnighyさん

 Rustのセミコロンをつけるべきところ、つけてはいけないところについて発表いただきました。
Rustの行末はセミコロンが必要なところもあれば、不要なところもあり、まとめていただいて非常に勉強になりました。
 また、Rustに関しての技術書典に向けてただいま執筆中だとお聞きしました。楽しみですね。

 皆さん、LTありがとうございました!

懇親会

 発表後は、ピザとビール・ジュースを片手にRustの話で盛り上がりました。
Rustをやっているエンジニアは担当している業務の幅が広くて話を聞くのが面白いですね。

Shinjuku.rs #4 は 5/21(火)に開催

 次回、Shinjuku.rs #4は5/21(火)に開催します。ご参加いただける方はこちらのイベントページからお申し込みください。
 5月の連休もあり、発表しやすいのではないでしょうか。皆様のご参加をお待ちしております!

Rustを書きたいエンジニア、大募集!

 フォルシアではRustでインメモリデータベースを書いています。Rustを書きたいエンジニアを大募集!
 キャリア採用情報:https://www.forcia.com/jobs/career/

この記事を書いた人

遠藤 寛之

2018年度新卒入社。
旅行の横断検索を担当。
最近趣味でRustを始めた。Rustのコンパイルが通ると嬉しい。