🥳

estieさん #Rust何もわからない イベレポ🎉

2022/04/18に公開

本日、estieさんの #Rust何もわからないにイベントレポート係として参加しました!

https://estie.connpass.com/event/243724/

イベント登録者数500人以上ってすごいですよね〜😊
ここまで人が集まった理由は、やはりこのプレスリリースが大きな反響を呼んだのだと思います。

https://prtimes.jp/main/html/rd/p/000000034.000040115.html

今回入社された@kenkooooさんならびに@matsu7874さんは「実践Rustプログラミング入門」を執筆されていましたね。
私もこちらの書籍を購入しております🤗きっと今回「実践Rustプログラミング入門」の読者の方々も興味を持ったことでしょう(๑˘ω˘ )و✧

estieさんは私が学生時代にお世話になった方々がいらっしゃることから、元々個人で勝手に声援を送っている会社さんなのですが、スタートアップ企業が、注目度が高い一方でまだまだ普及が進んでいない新しい言語でプロダクト開発をすることを決めて、言語コミュニティで著名なお二人を見事引き入れ、世間からの注目されていることは嬉しいことだなぁ✨と思います。

estieさんの紹介

今回、RustのLTがメインということで、会社についてはあっさりとご紹介されていました。
詳しくはホームページで、とのことでしたのでリンク貼り付けておきますね。
https://www.estie.jp/corp/

個人的には、3つのProductの方針軸を持って掛け算式に事業を活性化するとおっしゃっていたのが気になりました。(Productが掛かっている!!)

@kenkooooさんのactix-webで快適ウェブアプリ生活がいい感じな話

全体的に優しい〜〜〜✨雰囲気でした😊
ブラウザとサーバーの関係、GET/POSTなどの初歩的な説明から始まり、Rustの公式チュートリアルにも登場するウェブフレームワークactix-webを紹介されていました。

https://actix.rs/

「actix-webでTwitterアプリを作るとしたら」というツイッタラーなテーマで、このウェブフレームワークがシンプルにデータをいい感じに扱ってくれるとのことでした。

  • Data<欲しいデータの構造体>のように書いておくと、よしなにフレームワーク側から呼び出しされる
  • 関数の引数としてデータ構造体を足していくだけで、うまいこと動いてくれる
  • めっちゃ簡単なので、本当に必要なアプリケーションロジック設計に集中できる
    大体こんな感じのことをおっしゃっていたかなと思います。

また、actix-webミドルウェアを簡単に実装することができて、HTTPリクエストの前処理・後処理やデータベース周りの動きもいじれるとのことで、使い勝手が良さそうでした👀✨

既にRust導入から5ヶ月でプロダクトは1つリリース済み、運用の段階とのことで、すごいスピード感ですね!!
実際、「生産性が高い」「Rust流設計を矯正されるので、リソース管理もスマート」という感想でした。
また、大変な部分としては「外部のサービスのSDKでRust実装がまだないことから、自前で作る必要がある」とのことでした。これは確かに大変そうですが、腕が立つ人であれば自前でモリモリ作る余地があってこれはこれで楽しそうですね✧*。٩(ˊωˋ*)و✧*。
他のメンバーへのRustプロダクト開発教育は、@kenkooooさんご自身が丁寧に教えてくださるそうなので、Rust初心者でも何も心配いらないみたいです。

@matsu7874さんのTL衝撃!!3日でバックエンドRust再実装

「Next.js -> Next.js(API) -> DB」という構成のプロダクトの真ん中のAPI部分をRustに再実装されたそうです。

なんと3日で!!

これは確かにプレスリリース級ですね😂

自分にとって発見だったのですが、この再実装において、Rust実装のAPIをTypeScriptから呼ぶと両方の言語で型定義が必要になったそうです。その際、「TypeScriptのコードを自動生成するRustののプログラム」を実装することで手動コストを減らしたとのことで、面白いことやっていそうだなと思いました〜

また、再実装をすることになった発端が、それまで開発していたNode.jsに詳しいメンバーが抜けるタイミングでRust実装に切り替えることを決めたとのことで、既存のプロダクトに合わせてメンバーを選ぶのではなく、サクッと再実装を決めて今をときめくRustにbetした(賭けた)こともワクワクします。

再実装では、具体的にActix-webのマクロを書き換える要領でOpenAPIに対応したPaperclipを使って実装しているとのことでした。

https://github.com/paperclip-rs/paperclip

OpenAPIを使わない別プロジェクトでは、ts-rsを使われていたそうです。

面白そうですね。個人的にはWebから数年離れただけでいくつか知らない単語出てきてちょっと焦るんですが...笑

Q&A その他

Q&Aでは様々な質問に答えられていました

  • 統合テストについて
    • できるだけ実際の運用状況に近い状態でテストする方針。
    • Rust言語のユニットテストの機能でサーバーにリクエストを投げる。
    • インテグレーションテストで、AWSサービス部分もローカルスタックで起動してテストする。
  • Rustを使って辛いこと
    • Rust自体の難しさはない。アプリを作ることが難しい。
    • レビューができる人材になるまで育てるのは少し大変な部分もある。
  • デザイナーもプログラミングできる
    • すごい。非常に助かる。
    • もしデザイナーが「wasm使いたいぜ」みたいなことを言い出したら、エンジニア側も合わせて取り組むかもしれない。(すごい)
  • GraphQLを使うこともおいおい検討するかもしれない。別チームは使っている。
  • 不動産業者向けなので、ゴリゴリにリクエストを最適化する必要性はまだ生じていないけれど、メモリ効率の良さはそのうち効いてくるはず。
    • Rust導入して将来どうなっているか楽しみですね。

また、全体を通して 「Rustプロダクト開発興味ある人是非入社してほしい!」 という熱量を感じました。
Rust難しい言語と言われがちですが、そのイメージを払拭する勢いで「簡単だからestieでRustやろう!」というお誘いのメッセージ性を感じました。
確かにRustでプロダクトリリースできていて、優しくサポートしてくれそうな企業さんって、現段階では稀な存在だと思うのでこれからも頑張って欲しいです。

最後にestieさんは、これからもコミュニティへの貢献を念頭にRust系のLTイベントを開催していく様です。
今回は、Rust初心者向けの案内側面が強かったのですが、今後は中級者以上向けLTも開催するかもしれないとのことでした。そのうちestieさんの本気🔥が見れてしまうのでしょうか?今後も要チェックですね!
以上、イベレポでした〜🌟

Discussion