3.5K Views
February 07, 24
スライド概要
ユニークビジョン株式会社 テックリード。 業務でRust書きつつ、チームの生産性を向上させるような改善を推し進めています。 取るに足らないツイートが多いですが、技術的な話や最近勉強したことをつぶやきます。 第25回世界コンピュータ将棋選手権 9位。 ヤクルトスワローズ/将棋/キャンプ/DQW/謎解き/リアル脱出ゲーム
ユニークビジョンにおける Rust活用事例とノウハウの紹介 ROSCAFE Rustを学ぶ会 〜2社の最新活用事例〜 ユニークビジョン株式会社 テックリード 山本 一将
kyamamoto9120 山本 一将 コメント・質問など 頂けると嬉しいです! ハッシュタグ #ROSCAFE ユニークビジョン株式会社 テックリード 業務でRust書きつつ、チームの生産性を向上させる改善をします 実績:2015年 世界コンピュータ将棋選手権 9位 趣味:スポーツ観戦、将棋、キャンプ、リアル脱出ゲーム Copyright ©Unique Vision Company, All Rights Reserved. 2
本日の内容 1.ユニークビジョンの Rust 活用状況 2.Rust のメリット・デメリット 3.ノウハウの紹介 Copyright ©Unique Vision Company, All Rights Reserved. 3
ユニークビジョンの Rust 活用状況 Copyright ©Unique Vision Company, All Rights Reserved. 4
会社概要 社員の50%以上がエンジニアの テクノロジー企業です。 早い開発スピード・高い開発力へ投資: エンジニア(フルタイム)中心の企業 社名 ユニークビジョン株式会社 SNSマーケティングツールの提供: 代表者 白圡 良之 SNSキャンペーン、SNSアカウントの統合管理(Belugaシリーズ) 設立 2008年1月15日 所在地 東京都渋谷区千駄ケ谷5-34-7 NX新宿ビル2階 従業員数 49名 事業内容 ソーシャルメディアを活用して企業のファンを 増やすマーケティング事業 SNSプラットフォームベンダーとの密な連携: 認定パートナーとしてキャンペーンメニューの共同開発 (Twitter社, LINE社)、迅速な情報共有 Copyright ©Unique Vision Company, All Rights Reserved. 5
Beluga シリーズ ソーシャルメディアを活用して企業のファンを増やすマーケティングツールを提供 Copyright ©Unique Vision Company, All Rights Reserved. 6
フルファネルでブランド体験を作る Copyright ©Unique Vision Company, All Rights Reserved. 7
X Marketing Partners 国内7社 広告をリッチな体験を伴う 楽しいキャンペーンに変える! Copyright ©Unique Vision Company, All Rights Reserved. 8
LINEで応募 OMO Technology Partner 国内4社 Copyright ©Unique Vision Company, All Rights Reserved. 9
Rust.Tokyo 2023 ゴールドスポンサー Copyright ©Unique Vision Company, All Rights Reserved. 10
ユニークビジョンの技術スタック Beluga キャンペーン Belugaスタジオ Beluga キャンペーンfor LINE それ以降のシステム フロントエンド API バックグラウンド ワーカー バッチ その他 Copyright ©Unique Vision Company, All Rights Reserved. 11
アプリケーションの種類 • • • • • API サーバー バックグラウンドワーカー バッチ クローラー CLI ツール データベース • • • • • PostgreSQL DynamoDB Redis BigQuery S3 連携しているSNS 何をしている? どこで動く? • 開発マシン • AWS Lambda • Amazon Fargate • 画像処理 • AI / ML • Tensorflow利用 • 暗号処理 Copyright ©Unique Vision Company, All Rights Reserved. • • • • X(旧Twitter) LINE Facebook Instagram 12
とにかくたくさん 使っている! 13
Copyright ©Unique Vision Company, All Rights Reserved. 14
CTO が Rust.Tokyo で語った理由 1.パフォーマンスが重要なシステム 2.コンパイラとエコシステムが優秀 3.面白そうな言語! Copyright ©Unique Vision Company, All Rights Reserved. 15
Rust採用から6年で感じる メリット・デメリット Copyright ©Unique Vision Company, All Rights Reserved. 16
5つの観点で見るメリット・デメリット 開発生産性 保守性 インフラコスト 採用 Copyright ©Unique Vision Company, All Rights Reserved. 教育 17
デメリット コンパイル時間 とにかくコンパイルが遅い! CI に数十分 かかることも! Copyright ©Unique Vision Company, All Rights Reserved. 18
デメリット crate の機能不足 画像を扱う crate が EXIF に対応していない Copyright ©Unique Vision Company, All Rights Reserved. 19
Action! ないものは作る 名前 内容 DL数 twapi Twitter API v1 用のライブラリ 7,447 twapi-reqwest Twitter API v1 用のライブラリ 76,844 twapi-v2 Twitter API v2 用のライブラリ 1,796 actix-daemon-utils Actix を利用してデーモンを作る仕組み csv-zip-maker CSV を作成して ZIP にする dynamodb-mutex DynamoDB を使って排他制御を行う 515 redis-batches Redis を使って排他制御を行う 235 era-jp 明治以降の日本の元号を計算 actix-web-jsonschema ActixWeb で使えるバリデーター 80,325 1,680 ほとんどCTO作 使われているものもある 77,538 993 開発チームが問題解決のために作成したものも! Copyright ©Unique Vision Company, All Rights Reserved. 20
メリット 高信頼コンパイラ 大規模なリファクタリングも割と安心! Copyright ©Unique Vision Company, All Rights Reserved. 21
メリット 公式便利ツール rustfmt フォーマッター。cargo fmt で実行できる。 clippy Linter。他の言語に比べて誤検知が少ない印象。 Copyright ©Unique Vision Company, All Rights Reserved. 22
メリット 高速・省メモリ AWS は CPU 時間やメモリサイズで課金 Rust はインフラコスト削減に利く! Copyright ©Unique Vision Company, All Rights Reserved. 23
メリット Rustの関心高い 35% カジュアル面談でRustについて質問 選考全体では5割以上?! Copyright ©Unique Vision Company, All Rights Reserved. 24
デメリット 学習コストが高い Copyright ©Unique Vision Company, All Rights Reserved. 25
Action! ペアプログラミング Rust 初心者から3日後には自走してた。 最初の壁を超えるためには有効な手段! 星生さん より良い Rust の書き方を知れた。 その場で認識のすり合わせが出来て良い! 新谷さん Copyright ©Unique Vision Company, All Rights Reserved. 26
Action! LT会の主催 アウトプットの場を作って 学びを促進 次回は3月5日19時~です! Copyright ©Unique Vision Company, All Rights Reserved. 27
Rust のメリット・デメリット 1.短期的には軽量言語の方が開発は早い 2.保守性・コストなど長期的なメリットが多い 3.学習コストは教育制度でカバー可能 Copyright ©Unique Vision Company, All Rights Reserved. 28
ノウハウの紹介 Copyright ©Unique Vision Company, All Rights Reserved. 29
ワークスペースの構造 サブモジュールを全部 crates 下に置くと Cargo.toml がシンプルになる! Copyright ©Unique Vision Company, All Rights Reserved. 30
CI 時間を短縮する デバッグ情報を無効化して ./target を小さくする CI を動かす際には インクリメンタルビルドしない Copyright ©Unique Vision Company, All Rights Reserved. 31
まとめ Copyright ©Unique Vision Company, All Rights Reserved. 32
まとめ 1.Rust 採用から6年の利用状況を紹介 2.Rustは長期的に見たらメリットが多い 3.ユニークビジョンにはノウハウが溜まりつつある Copyright ©Unique Vision Company, All Rights Reserved. 33
手っ取り早く Rust を業務で使いたい方へ エンジニア募集中! Rust 書けるかも Copyright ©Unique Vision Company, All Rights Reserved. 34
ありがとうございました 質問・感想お待ちしております! Xのフォローお願いします 採用してます • 今日の発表について • ユニークビジョン • Rustについて • コードレビューの工夫 • 開発リーダーのお悩み • 東京ヤクルトスワローズ etc… Copyright ©Unique Vision Company, All Rights Reserved. 35