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
Search
Kazushige Tominaga
July 03, 2018
Programming
2
8.1k
ポイントで導入するRust
Running Rust in Production(
https://d-cube.connpass.com/event/90317/
)発表資料です
Kazushige Tominaga
July 03, 2018
Tweet
Share
More Decks by Kazushige Tominaga
See All by Kazushige Tominaga
スタディサプリのInternal Platform開発
kazu9su
0
1.4k
[スタディサプリ] Railsアプリケーションのモジュールとして存在していた Darklaunch (Feature Toggles) を Goアプリケーションとしてフルスクラッチでマイクロサービス化した話
kazu9su
0
2.7k
ExplorTechToronto20191016.pdf
kazu9su
0
61
キャッシュ安心戦略 with Feature Toggles
kazu9su
0
530
ebisurb20180724.pdf
kazu9su
1
230
How to contribute to OSS with test
kazu9su
0
350
プログラミング言語入門Vim編
kazu9su
1
360
プログラミング言語入門
kazu9su
1
2.6k
ebisurb15
kazu9su
0
50
Other Decks in Programming
See All in Programming
From the Wild into the Clouds - Laravel Meetup Talk
neverything
0
170
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
260
GoとPHPのインターフェイスの違い
shimabox
2
210
kintone開発を効率化するためにチームで試した施策とその結果を大放出!
oguemon
0
170
仕様変更に耐えるための"今の"DRY原則を考える
mkmk884
9
3.2k
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
41
16k
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
140
CDKを使ったPagerDuty連携インフラのテンプレート化
shibuya_shogo
0
110
パスキーのすべて ── 導入・UX設計・実装の紹介 / 20250213 パスキー開発者の集い
kuralab
3
910
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
1
630
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
310
Visual StudioのGitHub Copilotでいろいろやってみる
tomokusaba
1
210
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
What's in a price? How to price your products and services
michaelherold
244
12k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
GitHub's CSS Performance
jonrohan
1030
460k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
580
4 Signs Your Business is Dying
shpigford
183
22k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
650
Why Our Code Smells
bkeepers
PRO
336
57k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Transcript
ϙΠϯτͰಋೖ͢Δ3VTU
2 ࣗ ݾ հ Fablic, inc. —> Rakuten, inc.
Software Engineer 5PNNZ @tooooooooomy
3 ࣍ • RustΛ͓͏ͱࢥͬͨཧ༝ • RustΛ͏४උ • Rustಋೖͷ͖͔͚ͬ •
ӡ༻ͱͦͷޙ • ͓·͚
3VTUΛ͓͏ͱࢥͬͨཧ༝
5 ɾຖҰͭͷݴޠΛֶश
6
7 ·ͱʹͬͨ͜ͱͷ͋Δݴޠ(࣌) • PHP • JavaScript • Perl • Ocaml(ϓϩάϥϛϯάͷجૅݺΜͩఔ)
• C(େֶͱ͔K&RͰͪΐΖͬͱ)
8 ͬͨ͜ͱͷ͋Δݴޠ • PHP • JavaScript • Perl • C(େֶͳͲͰͪΐΖͬͱ)
৽͍͜͠ͱ͕͍ͨ͠ʂ
9
10 (PͳΒ͜ͷઌࣄͰ͏͜ͱ͋Γͦ͏ͩͳʜ
11 (PͳΒ͜ͷઌࣄͰ͏͜ͱ͋Γͦ͏ͩͳʜ ϗϯτ͔ʁ
12 ࣌ɹɹɹ΄͛
3VTUΛ͏४උ
14 ४උʁ
15 https://doc.rust-lang.org/book/second-edition/index.html
16 ϑϜϑϜͳΔ΄ͲʜҎ্ͷײ͕ग़ͳ͍
17 ಈ͘ͷ͕࡞Γ͍ͨ
18 https://kazu9su.com/football-matome • Α͋͘Δ2ch·ͱΊ • αʔόʔαΠυ: Rust • ΫϥΠΞϯτ: React
+ Redux
19 RustͰ͍ͬͯΔ͜ͱ • xmlΛऔ͖ͬͯͯDBʹอଘ • JSONΛग़ྗɹ
20 RustͰ͍ͬͯΔ͜ͱ • xmlΛऔ͖ͬͯͯDBʹอଘ • JSONΛग़ྗɹ ීஈ͍ͬͯΔͷͰΠϝʔδͰ͖Δ
21 https://github.com/kazu9su/football-matome • Libraries • Web framework • nickel •
ORM and Query Builder • diesel • Http client(and server) • hyper • Mocking • mockito
22 https://github.com/kazu9su/football-matome • Libraries • Web framework • nickel •
ORM and Query Builder • diesel • Http client(and server) • hyper • Mocking • mockito ࣮Λҙࣝ͢Ε͍͍͚ͩͷ ϥΠϒϥϦ͢Ͱʹ༻ҙ͞Ε͍ͯΔ
23 ศར
3VTUಋೖͷ͖͔͚ͬ
25 • ϥΫϚ։ൃνʔϜͰɺࣗಈԽΛଅਐ͍ͯ͠·͢ • ͕Joinͨ࣌͠(1લ)νʔϜͷਓ͕େ͖͘มΘΓ ࢝Ί͓ͯΓɺࣗಈԽͷػӡ͕ߴ͘ͳ͖͍ͬͯͯͨ
26 • ࣾΞϓϦڞ௨ͷϥΠϒϥϦͱ͍ͯͬͯ͠ΔͷͷσϓϩΠϑϩʔ
27 • ࣾΞϓϦڞ௨ͷϥΠϒϥϦͱ͍ͯͬͯ͠ΔͷͷσϓϩΠϑϩʔ
28 • ࣾΞϓϦڞ௨ͷϥΠϒϥϦͱ͍ͯͬͯ͠ΔͷͷσϓϩΠϑϩʔ 1SPCMFN
29 • λά࡞εΫϦϓτʹRubyΛ༻͍ͯͨͨ͠ΊɺHeroku্Ͱ bundle install͍ͯͨ͠ • ຖճ2͘Β͍͔͔͍ͬͯͨ
30 • λά࡞εΫϦϓτʹRubyΛ༻͍ͯͨͨ͠ΊɺHeroku্Ͱ bundle install͍ͯͨ͠ • ຖճ2͘Β͍͔͔͍ͬͯͨ ࣗಈԽͷҙຯͶ͑
31 • ͦΜͳં
32 • ͦΜͳં
33 3VTUͷػӡ
ӡ༻ͱͦͷޙ
35 ಋೖޙ
36 ແࣄॳͷղܾ͞Εͨ
37 ͔͠͠…
38 3VTUΛॻ͚Δਓ͕͔͍͠ͳ͍ͱ͍͏͜ͱ͕ʹʜ
39
40 ͳΒͳ͔ͬͨ
41
42 ͜Εʹؔͯ͠νʔϜϝϯόʔͷ͓͔͛ͳͷͰײँ͔͠ͳ͍Ͱ͢
43 ਅͷΫϩείϯύΠϧ
44 ͦΕҎ߱मਖ਼ͱ͔ͳͯ͘·ͩղܾͯ͠ͳ͍Ͱ͢ɻ νʔϜͱͯ͠ӡ༻͍ͯ͘͜͠ͱΛߟ͑ΔͱϚετͳͷͰɺলʜ
45 ·ͱΊ • ͕ࣗखΛಈ͔ͯ͠Πϝʔδ͕Ͱ͖ΔͷͰ࿅श͢Δͱศར • ͷ߹؆ૉͳWebαʔϏε • ৽͍͠ڥͷ߹ɺ৽͍͜͠ͱΛ͢Δνϟϯε • ࣗಈԽͳͲɺࣄۀυϝΠϯʹ͋·Γؔͷͳ͍ͱ͜ΖΛΒͤͯΒ͑Δνϟϯε͕ଟ͍
• Rust͑Δ͜ͱΛΞϐʔϧ͍ͯͨ͠ͷͰϝϯόʔ͔ΒੵۃతʹಋೖΛࢧԉͯ͠Βͬͨ • ෆ۩߹͕ى͖ͨΒࣗʹͤΖελΠϧͰͬͯ͠·͏ͷ݁ߏ͋Γͩͱࢥ͏ • ͦͷޙͷέΞΛΔͷͱηοτ • νʔϜͷջͷਂ͞ͱ৽͍ٕ͠ज़ͷಋೖʹର͢Δཧղ • ʹίϯτϩʔϧͰ͖Δͱ͜ΖͰͳ͍ͷͰɺվΊͯνʔϜϝϯόʔʹײँ
͓·͚
3VTU5FTUUJQT
48 σϑΥϧτͰϚϧνεϨου࣮ߦ͞ΕΔ • DBͳͲΛͬͨςετͱ૬ੑѱ͍ • ࣮࣭తʹWebαʔϏεͰ͏߹ $cargo test -- —test-threads=1
͕σϑΥʹͳΔ͔
49 Private methodͷςετಉϑΝΠϧʹॻ͘ • ༰қʹςετͰϑΝΠϧߦ͕૿Ճ͍ͯ͘͠ͷͰݸਓతʹ͚ͯॻ͖͔ͨͬͨ • PrivateͳϝιουʹͦͷϑΝΠϧ͔Β͔͠ΞΫηεͰ͖ͳ͍ͱ͍͏ͷɺݴΘΕͯΈ ΕҰͭͷ͑ͳؾͨ͠ • ͋ͱͦΕͰߦ͕૿͑ͯݟ௨͕͠ѱ͘ͳͬͨΒઃܭΛݟͤͱ͍͏͜ͱ͔ͳͱਪଌ
50 Mocking Library Mockitoͷ༷ • Javaͷಉ໊ϥΠϒϥϦͷΠϯεύΠΞʁ(ਅِෆ໌) • ༷ॻಡΊॻ͍ͯ·͕͢ɺϩʔΧϧϚγϯ্ͰHTTPαʔόΛ্ཱͪ͛Δͱ͍͏ͷ • ίʔυͰࢦఆͯ͠ΔURLͰΞΫηε͢ΔઌΛMockitoͰ্ཱͪ͛ͨαʔόʔʹ͚ΔΠϝʔδ
• ීஈPHPͱ͔RubyͰΠϝʔδͯ͠Δͷͱҧ͏ͷͰݴٴͯ͠Έͨ
͞Βʹ͓·͚
52 ஔ͖͑ݩ(Ruby)ͱஔ͖͑ઌ(Rust)ͷൺֱ https://speakerdeck.com/kazu9su/wen-zi-lie-cao-zuo-nijian-rurubytorustfalsebi-jiao-wen-zi- lie-cao-zuo-nijian-rurubytorustfalsebi-jiao
53 3BLVUFOͰ<ΤϯδχΞ>Λੵۃ࠾༻தʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠