課題を解決して、Rustと界隈を良くしていく

154 Views

April 17, 25

スライド概要

profile-image

ユニークビジョン株式会社CTOです。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

課題を解決して、 Rustと界隈 を良くしていく ユニークビジョン株式会社 CTO 青柳康平

2.

目次 目次 会社紹介と自己紹介 Rust導入の経緯 現在の利用状況 課題と今後 まとめ Copyright ©Unique Vision Company, All Rights Reserved. 2

3.

ご紹介 ユニークビジョン株式会社 SNSマーケティングの領域でキャンペーンの実施や SNSアカウントを管理するツールなどを提供する会社 2025年4月時点で全社員 70人、エンジニア 33人 エンジニアは自社ツールの開発、キャンペーンの 案件開発を行っています。 取締役CTO X Marketing Partners 青柳康平 LINE販促・OMO部門の Technology Partner 主に開発をしながら、全社の技術方針や開 発方針を取りまとめている いわゆるプレイングマネージャー バックエンド開発とDB設計が得意 Copyright ©Unique Vision Company, All Rights Reserved. 3

4.

Rust導入経緯 以前はRubyとRailsで開発 14万件のCSVダウンロード作成中にサーバーごとのお亡くなりになりました そこで当時趣味で遊んでいたRustで試してみたところ6分で生成 大量データを扱うのにRustはフィットしました Copyright ©Unique Vision Company, All Rights Reserved. 4

5.

Rust導入経緯 2016年に業務で利用しています。 Copyright ©Unique Vision Company, All Rights Reserved. 5

6.

Rust導入経緯 LINEのキャンペーンを開発することになり、負荷は𝕏の3倍と見積もられました。 そこでLINEではRustの全面採用を決めました。 以降、Rustの利用が広がっていきます。 Copyright ©Unique Vision Company, All Rights Reserved. 6

7.

現在の利用状況 ユニークビジョンのRustのプロダクト 2025年 Belugaスタジオ Belugaキャンペーン for X Belugaキャンペーン for LINE CRM その他 ログイン Dictionary PictureCheck 全面採用 帳票出力 常駐バッチ モックアップ メッセンジャー チェックイン クローラー投稿 帳票出力 マイレージAPI Tracker 常駐バッチ 常駐バッチ 管理API Instagram Copyright ©Unique Vision Company, All Rights Reserved. 7

8.

現在の利用状況 (キャンペーンシステム ) Rustで開発されているキャンペーンシステムについて説明します。 ● ● ● クローラー 抽選処理 配信処理 どの処理も非同期で制御する必要がありRustで書くことで、バグが少なくパフォーマン スが良い状態を保てています。 Copyright ©Unique Vision Company, All Rights Reserved. 8

9.

現在の利用状況 (キャンペーンシステム ) クローラー SNSから投稿を回収するシステム ● ● Webhook:SNSに指定のURLに投稿を送信。リアルタイムで回収できるメリットが ありますが、取りこぼすと回収できなくなります REST API:ある程度過去のデータを取得できます。レートリミットに注意します。 どちらの方式も非同期で並列に処理することで、多くの投稿を回収します Copyright ©Unique Vision Company, All Rights Reserved. 9

10.

現在の利用状況 (キャンペーンシステム ) 抽選処理 ● ● 投稿フィルタリング:回収した投稿から、キャンペーンに該当する投稿をフィルターし て、抽選を行います 抽選処理:抽選では様々なルールを非同期に検証します。当たりの在庫は少ない ので取り合いになっても正しく制御してます Copyright ©Unique Vision Company, All Rights Reserved. 10

11.

現在の利用状況 (キャンペーンシステム ) 配信処理 当落の結果を参加者に返します。 ● ● ● DM:本人だけ見えるメッセージとして送信 リプライ:誰でも見えるメッセージとして送信 コメント:誰でも見えるメッセージとして送信 こちらもレートリミット等があるので、調整しながら非同期に配信しています。 Copyright ©Unique Vision Company, All Rights Reserved. 11

12.

課題は色々改善してきた ● ● ● ● DBのカラムが変更されるとテストが壊れる →builderで対応 Rust と歩んだ 7 年間:プロダクションコードのための実践的テスト 外部APIがテストしずらい →モック化可能なAPIのラッパーを書く Rust と歩んだ 7 年間:プロダクションコードのための実践的テスト 各プロジェクトで帳票出力の同じようなコードを書いている →CSVとZIPを行うライブラリを書く csv-zip-maker 常駐プログラムの書くのが難しい →ライブラリを書く resident-utils Copyright ©Unique Vision Company, All Rights Reserved. 12

13.

残った課題と今後 [課題] 動的にカスタマイズしたい Luaを使っている LuaはRustと違って使いにくい → [今後] 全部Rustで書きたい WASMを使う! RustでWASMを使ったプラグインを呼び出す Copyright ©Unique Vision Company, All Rights Reserved. 13

14.

まとめ 課題は都度解決していってますが、今も課題はあります 改善の取り組みはしつづけています 改善の内容はライブラリや資料にして公開しています 些細ですが、Rustが発展するように色々公開したりLT会などを開いています Copyright ©Unique Vision Company, All Rights Reserved. 14

15.

宣伝 ● ● UV Study 毎月ユニークビジョンでLT会を開いています。RustやVue.jsの話題などを月替りで 行っています。Rustは3ヶ月に1度程度あります。connpassで検索してみてくださ い。 採用 エンジニアとディレクターの採用をしています。 エンジニアではRust未経験でも大丈夫です! ホームページの採用のページを見てください。 Copyright ©Unique Vision Company, All Rights Reserved. 15

16.

ご清聴ありがとうご ざいます! Copyright ©Unique Vision Company, All Rights Reserved. 16