Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rust、何もわからない...#6発表資料
Search
Ryuki Kamikubo
January 27, 2023
Programming
1.5k
0
Share
Rust、何もわからない...#6発表資料
こちらのイベントで登壇した際の発表資料です。
https://estie.connpass.com/event/270226/
Ryuki Kamikubo
January 27, 2023
Other Decks in Programming
See All in Programming
20年以上続くプロダクトでも使い続けられる静的解析ツールを求めて
matsuo_atsushi
0
150
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
4
530
いつか誰かが、と思っていた フロントエンド刷新5年間の実践知
kiichisugihara
1
290
過去のレビュー知見をSkillsで資産化した話
pkshadeck
PRO
1
2.1k
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
260
Kubernetesを使わない環境にもCloud Nativeなデプロイを実現する / Enabling Cloud Native deployments without the complexity of Kubernetes
linyows
3
430
Firefoxにコントリビューションして得られた学び
ken7253
2
170
決定論 vs 確率論:Gemini 3 FlashとTF-IDFを組み合わせた「法規判定エンジン」の構築
shukob
0
170
なぜあなたのコードには「コシ」がないのか?〜AI時代に問う、最後まで美味しい設計と戦略〜 #phpconkagawa / phpconkagawa2026
shogogg
0
210
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
5
730
Sans tests, vos agents ne sont pas fiables
nabondance
0
140
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
1
160
Featured
See All Featured
Discover your Explorer Soul
emna__ayadi
2
1.1k
Mobile First: as difficult as doing things right
swwweet
225
10k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
160
The Spectacular Lies of Maps
axbom
PRO
1
750
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
800
Building a Scalable Design System with Sketch
lauravandoore
463
34k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
440
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
360
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
180
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
560
Transcript
Copyright © LabBase, Inc. All Rights Reserved. LabBaseのサービスプラットフォームの データ収集機能開発にRustを活用した話 株式会社LabBase
プラットフォーム開発本部 上久保 竜輝
Copyright © LabBase, Inc. All Rights Reserved. 自己紹介 上久保 竜輝(Kamikubo
Ryuki) 趣味 > テニス、ランニング、ボドゲ、競プロ(過去形) ソフトウェアエンジニア > frontend : backend = 6:4 > React,TypeScript,Rust,Python,PHP(Laravel) 職歴 > 2019年 4月 大手通信会社 入社 > 2021年10月 株式会社LabBase 入社 最近の興味 > アーキテクチャ,DDD,インフラ周り強くなりたい
Copyright © LabBase, Inc. All Rights Reserved.
Copyright © LabBase, Inc. All Rights Reserved. サービス紹介
Copyright © LabBase, Inc. All Rights Reserved.
Copyright © LabBase, Inc. All Rights Reserved. 約1年前 CTO「Rustやろう」ぼくら「「「はい」」」 Rustで業務開発経験あるエンジニアなし、無茶振りに焦る
> 新しい技術を学ぶのはみんな好き
Copyright © LabBase, Inc. All Rights Reserved. 現在 エンジニアの半数以上がRustで開発している 新規開発のバックエンドは基本的にRust
プラットフォーム基盤などの重要なシステムにもRustを利用 > 実はCTOの無茶振りのおかげで仕事でRustがかなり書ける会社です!!
Copyright © LabBase, Inc. All Rights Reserved. 自分がRustで開発したプロダクト紹介: 企業マスタ 企業情報をバッチ処理で
外部APIを叩いて取得 社内の他プロダクトがア クセスできるようにgRPC サーバを構築
Copyright © LabBase, Inc. All Rights Reserved. 自分がRustで開発したプロダクト紹介: 研究室データ投入 集めた大量の研究室や指導
教官に関するデータを投入 するツール > JSON形式のデータをparseして DB投入
Copyright © LabBase, Inc. All Rights Reserved. 最初はやっぱり大変 無限に所有権で怒られる >
所有権やCopyトレイトを学んで 解決
Copyright © LabBase, Inc. All Rights Reserved. Rust、何もわからない... スマートポインタわからん 動的ディスパッチわからん
ライフタイム注釈わからん > 見た目がいかつくて怖い(※個人の感想で す) > 文法がわかっても存在理由や使い道がしっ くりきていない
Copyright © LabBase, Inc. All Rights Reserved. 慣れてくると段々いい感じに Option型、Result型によるエ ラーハンドリング便利
> ?やmap_errなどを使うとネストが 深くならなくて可読性保てる
Copyright © LabBase, Inc. All Rights Reserved. よかったこと SeaORMいい感じだった >
Seeding,Migration,Entity自動生 成など一通りできる > MockのConnectionなど簡単に作れ てテスト書きやすい
Copyright © LabBase, Inc. All Rights Reserved. よかったこと ユニットテストを実装と同ファイルに書くと、見通し良い
Copyright © LabBase, Inc. All Rights Reserved. 学んだこと ソフトウェアアーキテクチャを 実現するのにRustは向いている
なと思った > 階層ごとにpublic設定しないとアク セスできないので、意図しない公開を 防げる [lib.rs] pub mod models; [models.rs] pub mod laboratory; [laboratory.rs] pub mod lab_name;
Copyright © LabBase, Inc. All Rights Reserved. 学んだこと > domainやinfra層をそれぞれ別の
パッケージとして実装。変更差分の あるパッケージだけビルドできる し、各層間の依存関係も表現できる > テックブログ書きました 企業マスタのディレクトリ構成
Copyright © LabBase, Inc. All Rights Reserved. 学んだこと Rustは早いと言われているが、遅 く書けてしまう(当たり前)
> clone(),to_owned()祭り > 遅いアルゴリズム、不必要なSQLでの呼 び出しなどなど
Copyright © LabBase, Inc. All Rights Reserved. 感じたこと Rustじゃなきゃダメっていう問題解決的な動機での導入では ないが、様々な言語の良い部分がRustに取り入れられてお
り、他の言語からやってくると新たな発見があって楽しい > CargoやCrateの充実もそう > エラー文がとても親切・アドバイスもしてくれる(clippyもいい)
Copyright © LabBase, Inc. All Rights Reserved. 感じたこと 所有権の概念と冗長なコードに慣れれば走り出せる >
実際に開発しながら、これなんだろ?で調べるの繰り返しがいいと思 う つよつよな人が多いおかげでネットで本質的な情報を探しや すい!
Copyright © LabBase, Inc. All Rights Reserved. まとめ Rustは開発しながら学習意欲、知的好奇心を満たせる >
仕様を学ぶごとに2週目ダンジョンの隠しステージが見えてくるよう Rustの難しさは必要な複雑性、自分の理解の甘さ 業務開発の中でアーキテクチャ、アルゴリズムなど疎かにし ない、あくまで総合格闘技
Copyright © LabBase, Inc. All Rights Reserved. 最後に LabBaseで一緒に開発する仲間を募集中です!Rustに興味がある皆 さん是非!
• ソフトウェアエンジニア • リサーチエンジニア
Copyright © LabBase, Inc. All Rights Reserved. 最後に エンジニアメンバーでテックノートを書いています!