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
VS Code をプロダクトにどう取り込むか
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Naoto Ono
April 20, 2024
Programming
1.1k
1
Share
VS Code をプロダクトにどう取り込むか
https://vscode.connpass.com/event/308890/
で話した内容です。
Naoto Ono
April 20, 2024
More Decks by Naoto Ono
See All by Naoto Ono
Introduction of new features for VS Code debugging
onomax
2
2.4k
Introduction of Tools for providing rich user experience in debugger
onomax
0
24
"debug.gem" の利用体験・開発体験の向上
onomax
0
17
Other Decks in Programming
See All in Programming
AIとRubyの静的型付け
ukin0k0
0
190
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
370
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
200
RailsTokyo 2026#4: AI様があれば、 Hotwireの弱点は消えるか?
naofumi
5
1k
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
290
ECR拡張スキャンでSBOMを収集して サプライチェーン攻撃の影響調査を 爆速で終わらせてみた
akihisaikeda
2
200
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
10
2.8k
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
1.2k
AIエージェントと協働するCLI開発 — BunとOpenClawで学んだこと
yoshikouki
1
220
[BalkanRuby 2026] Drop your app/services!
palkan
3
710
Copilot CLI の継戦能力を高める コンテキスト管理
nozomutu
1
1.1k
RTSPクライアントを自作してみた話
simotin13
0
290
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
230
The SEO Collaboration Effect
kristinabergwall1
1
460
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
330
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
370
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Why Our Code Smells
bkeepers
PRO
340
58k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Chasing Engaging Ingredients in Design
codingconduct
0
200
The Curse of the Amulet
leimatthew05
1
12k
Designing Powerful Visuals for Engaging Learning
tmiket
1
380
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Transcript
VS Code ΛϓϩμΫτʹͲ͏औΓࠐΉ͔ VS Code Extension ࣮͔Β࣮ࡍͷϓϩμΫτʹऔΓࠐΉ·Ͱ Presented by Naoto
Ono
ࣗݾհɿখ ਓ ▶ GitHub: @ono-max ▶ ॴଐɿLaunchable, inc. ▶ ։ൃʹܞΘͬͨ
VS Code Extension Ruby Debugger Ruby Typeprof Launchable 2
Launchable ʹ͍ͭͯ 3 ▶ ςετʹ͓͚Δ༷ʑͳ՝Λղܾ͢ΔϓϥοτϑΥʔϜ ▶ Predictive Test Selection ػցֶशΛ༻͍ͯͦͷมߋʹରͯ͠࠷Ձͷ͋ΔςετΛબΜͰ͘ΕΔػೳ
▶ Test Insights Flakey Test ςετͷ࣮ߦ࣌ؒͷਪҠͳͲΛੳ͠දࣔͯ͘͠ΕΔػೳ ▶ …
σϞɿVS Code Extension 4
None
ࠓճͷͷςʔϚ ▶ VS Code Extension ։ൃͷಓͷΓ ࠓհͨ͠ Extension ͲͷΑ͏ʹ࡞ΒΕͨͷ͔ 6
ࠓճͷͷςʔϚ ▶ VS Code Extension ։ൃͷಓͷΓ ࠓհͨ͠ Extension ͲͷΑ͏ʹ࡞ΒΕͨͷ͔ 7
VS Code Ͱ ͜Μͳ͜ͱͰ͖ΔΜͩʂ
ࠓճͷͷςʔϚ ▶ VS Code Extension ։ൃͷಓͷΓ ࠓհͨ͠ Extension ͲͷΑ͏ʹ࡞ΒΕͨͷ͔ 8
VS Code Ͱ ͜Μͳ͜ͱͰ͖ΔΜͩʂ VS Code Extension ։ൃͯ͠ݟΑ͏͔ͳ…
ḪΔ͜ͱೖࣾ̍Χ݄લ 9 ▶ Կ͔໘ന͍ͷΛ࡞Γ͍ͨʂ ▶ ྑͦ͞͏ͳωλΛ୳͍ͯͨ͠
Launchable Ͱ໘ന͍͜ͱ͕Ͱ͖ͳ͍͔ߟ͑ͯΈΔ 10 ▶ ͔ͤͬ͘ೖࣾ͢Δ͠ɺ͍͍ػձʹͳΓͦ͏ ▶ ৭ʑ৮ͬͯΈΔ͜ͱʹͨ͠
Launchable ʹ͍ͭͯษڧ 11
Launchable ʹ͍ͭͯษڧ 12
Ϗϧυʹؔ͢ΔใΛૹΔ 13 CI ڥ Ϗϧυ `456` Launchable Ϗϧυ `456` ʹ͓͚Δมߋ
ʢԿߦมߋ͔ͨ͠ɾϑΝΠϧ໊ʣ
Ϗϧυʹؔ͢ΔใΛૹΔ 14 CI ڥ Ϗϧυ `456` Launchable Ϗϧυ ͷ ID
ʢϢʔβʔ͕ઃఆʣ Ϗϧυ `456` ʹ͓͚Δมߋ ʢԿߦมߋ͔ͨ͠ɾϑΝΠϧ໊ʣ
Launchable ʹ͍ͭͯษڧ 15
16 CI ڥ Launchable ϒϨΠϯ શ݅ςετͷҰཡ 20% ͷ ςετΛ ͍ͩ͘͞
ςετͷҰཡΛૹΔ
CI ڥ Launchable ϒϨΠϯ 20%ͷςετ ςετͷҰཡΛૹΔ
CI ڥ ςετΛ࣮ߦ ςετϥϯφʔ 20ˋͷςετ ςετϨϙʔτ ϑΝΠϧ
Launchable ʹ͍ͭͯษڧ 19
ςετ݁ՌΛૹΔ 20 CI ڥ Launchable Ϗϧυ `456` ʹ͓͚Δςετ݁Ռ ʢԿ݅ύεͯ͠Կࣦ݅ഊ͔ͨ͠ʣ
ςετϨϙʔτ ϑΝΠϧ Launchable CLI Ϗϧυ `456`ͷ ςετηογϣϯ
ςετηογϣϯͱϏϧυ Ϗϧυ `456` ςετηογϣϯ #1 ޭ 100݅ ࣦഊ 5݅ ޭ
95݅ ࣦഊ 10݅ ޭ 99݅ ࣦഊ 6݅ Python: 3.6 ςετηογϣϯ #2 Python: 3.7 ςετηογϣϯ #3 Python: 3.8
ςετηογϣϯͱϏϧυ Ϗϧυ `456` ςετηογϣϯ #1 ޭ 100݅ ࣦഊ 5݅ ޭ
95݅ ࣦഊ 10݅ ޭ 99݅ ࣦഊ 6݅ Python: 3.6 ςετηογϣϯ #2 Python: 3.7 ςετηογϣϯ #3 Python: 3.8 ͦΕͧΕͷ δϣϒͰ࣮ߦ͞Εͨ ςετΛ·ͱΊͨͷ
ςετηογϣϯͱϏϧυ Ϗϧυ `456` ςετηογϣϯ #1 ޭ 100݅ ࣦഊ 5݅ ޭ
95݅ ࣦഊ 10݅ ޭ 99݅ ࣦഊ 6݅ Python: 3.6 ςετηογϣϯ #2 Python: 3.7 ςετηογϣϯ #3 Python: 3.8 ͦΕͧΕͷ δϣϒͰ࣮ߦ͞Εͨ ςετΛ·ͱΊͨͷ ϑΝΠϧͷมߋใ ίϛοτใΛ ·ͱΊͨͷ
࠶ܝɿLaunchable ͷ͍ํ 24
࠶ܝɿLaunchable ͷ͍ํ 25 CLI ͷΓऔΓ ͕ଟ͍ʂʂ
Launchable CLI ίϚϯυ 26 ▶ ϏϧυใΛૹΔɿ `launchable record build …`
▶ ςετͷαϒηοτͷऔಘɿ `launchable subset …` ▶ ςετ݁ՌΛૹΔɿ `launchable record test …`
Launchable CLI ίϚϯυ 27 ▶ ϏϧυใΛૹΔɿ `launchable record build …`
▶ ςετͷαϒηοτͷऔಘɿ `launchable subset …` ▶ ςετ݁ՌΛૹΔɿ `launchable record test …` ίϚϯυ͕ଟͯ͘ ͦ͠͏…
Ͳ͏͢Ε CLI Λ؆୯ʹ࣮ߦͰ͖Δͷ͔ʁ
Ͳ͏͢Ε CLI Λ؆୯ʹ࣮ߦͰ͖Δͷ͔ʁ => VS Code Extension ͳΒղܾͰ͖Δʂ
ΞΠσΟΞܾ·ͬͨʂ͋ͱ࡞Δ͚ͩ 30 ▶ VS Code Extension ͷςϯϓϨʔτ Yeoman Ͱ ▶
github.com/microsoft/vscode-extension-samples Ͱ API ͷ࡞ΓํΛษڧ ΠϝʔδΛ௫ΊͨΒυΩϡϝϯτͰৄࡉΛΔ ▶
σϞɿLaunchable CLI Λͬͨ VS Code Extension
None
σϞͷ·ͱΊ 33 ▶ CLI ΛҙࣝͤͣʹɺϢʔβʔײతʹ Launchable ͷػೳΛ ͏͜ͱ͕Ͱ͖Δ ཪଆͰઌ΄Ͳհͨ͠ίϚϯυ͕ୟ͔Ε͍ͯΔ
࡞ͬͨ Extension ΛݟͤͯΈͨ 34 ▶ ೖࣾޙɺ࡞ͬͨ VS Code Extension ΛݟͤͯΈͨ
▶ ͍͍ԠΛΒ͏͜ͱ͕Ͱ͖ɺૣϦϦʔε͠Α͏ʂͱͷ͜ͱ
͜͜·Ͱ࡞ͬͯΈͯ… 35 ▶ ࠓ·Ͱͷ VS Code ͷ։ൃܦݧ͕׆͔ͤͨ CLI ͰͰ͖ͳ͍͜ͱΛ VS
Code ͰΧοίΑ͘දݱ͢Δ ▶ ͜Ε͔ΒϑΟʔυόοΫΛΒ͍ͳ͕Βվળ͍ͯ͜͠͏
͍͟ϦϦʔεʂ
͍͟ϦϦʔεʂ ʹʼޙ...
ϦϦʔεޙ ▶ Πϯετʔϧ͕ͳ͔ͳ͔৳ͼͳ͍ Ϣʔβʔ͔ΒͷϑΟʔυόοΫ΄ͱΜͲͳ͔ͬͨ ▶ ϒϩάΛॻ͍ͯΈͨΓͯ͠ɺ͋·ΓมΘΒͣ
ͳͥΘΕͳ͍ͷ͔ 39 ▶ ୭ʹͬͯΒ͏͔ΛΠϝʔδͰ͖ͯͳ͍ ▶ ͦͦϩʔΧϧͰ Launchable Λ࣮ߦ͍ͨ͠ͱ͍͏Ϟνϕʔγϣϯ͕ͳ͍ ▶ ࣾͷΤσΟλ
IntelliJ ͕ϝΠϯ ࣗΛؚΊͨࣾͷਓͰ͢Β͏ػձ͕ͳ͍
ΘΕΔͷΛ࡞Δͷ͍͠ 40 ▶ ͜ͷ··طଘͷͷΛվળͯ͋͠·Γָ͘͠ͳͦ͞͏ ▶ ৽͍͠ͷͰ࡞ͬͯΈΑ͏
লΛ౿·͑ͨ৽ػೳ։ൃ 41 ▶ ৭ʑͳϓϩμΫτͷ VS Code Extension ΛͬͯΈͨ ▶ ͕ࣗৗۀͰ͑Δͷ͔
▶ ָ͘͠࡞Εͦ͏͔
ιʔείʔυʹδϟϯϓ͢Δػೳ 42 ▶ Datadog ͷ VS Code ΤΫεςϯγϣϯ ▶ Web
ΞϓϦέʔγϣϯ͔Βιʔείʔυʹδϟϯϓ͢Δػೳ ▶ Ͱ͖ͨΒΊͬͪΌΧοί͍͍ʂʂ
ͲͷΑ͏ʹ࣮͢Δ͔ 43 ▶ ֘ͷϑΝΠϧΛͲͷΑ͏ʹݟ͚ͭΔ͔ ▶ ϢʔβʔʹΑͬͯσΟϨΫτϦߏҧ͏ Web ΞϓϦέʔγϣϯଆͰೖྗ͢ΔUIΛ࡞Δͷඍົ… ▶
ͲͷΑ͏ʹ࣮͢Δ͔ 44 ▶ Datadog ͷ Extension ઃఆʹʮ୳ࡧ͢ΔσΟϨΫτϦͷਂ͞Λઃఆ Ͱ͖ΔʯϑΟʔϧυΛൃݟͨ͠ ۪ʹީิͱͳΓͦ͏ͳσΟϨΫτϦΛ୳͍ͯ͠ΔͷͰʁ ▶
ͲͷΑ͏ʹ࣮͢Δ͔ 45 ▶ ֘ͷϑΝΠϧΛͲͷΑ͏ʹݟ͚ͭΔ͔ ▶ Α͋͘Δ୳ࡧͷҰͭͩͬͨʂ ࠶ؼతʹݕࡧͯͦ͠ͷσΟϨΫτϦΛΩϟογϡͯ͠… ŝŦ―― ƅ㱼ƅ)――!!
46 ͲͷΑ͏ʹιʔείʔυΛ୳͍ͯ͠Δͷ͔ ։ൃऀ VS Code Extension Πϯετʔϧ
47 ͲͷΑ͏ʹιʔείʔυΛ୳͍ͯ͠Δͷ͔ ։ൃऀ VS Code Extension `.git` σΟϨΫτϦ Λ࣋ͭσΟϨΫτ
ϦͷύεΛ୳͢ Πϯετʔϧ
48 ͲͷΑ͏ʹιʔείʔυΛ୳͍ͯ͠Δͷ͔ ։ൃऀ VS Code Extension `.git` σΟϨΫτϦ Λ࣋ͭσΟϨΫτ
ϦͷύεΛ୳͢ Πϯετʔϧ VS Code Global Storage ύεΛอଘ
49 ͲͷΑ͏ʹιʔείʔυΛ୳͍ͯ͠Δͷ͔ Launchable Web ΞϓϦ VS Code Extension ։͖͍ͨςετͷύε
50 ͲͷΑ͏ʹιʔείʔυΛ୳͍ͯ͠Δͷ͔ Launchable Web ΞϓϦ VS Code Extension ։͖͍ͨςετͷύε
VS Code Global Storage ύεΛऔΓग़͢
51 ͲͷΑ͏ʹιʔείʔυΛ୳͍ͯ͠Δͷ͔ Launchable Web ΞϓϦ VS Code Extension ։͖͍ͨςετͷύε
VS Code Global Storage ֘ͷύεΛ୳͢ ύεΛऔΓग़͢
52 ͲͷΑ͏ʹιʔείʔυΛ୳͍ͯ͠Δͷ͔ Launchable Web ΞϓϦ VS Code Extension ։͖͍ͨςετͷύε
࣮ࡍʹ࡞ͬͯΈͯ… 53 ▶ ࡞Δͷָ͔ͬͨ͠ʂ ▶ ҙ֎ͱ͍ʹ͍͔͘… ϑΝΠϧͷͲ͜ʹ͋Δ͔͔Βͳ͍ -> ֘ͷςετͷߦʹҠಈ͠ͳ͍ ▶
ߦ൪߸Λςετ͔Βऔಘ͢Δ ▶ Launchable CLI Ͱ࣌ςετͷߦ൪߸Λऔಘ͍ͯ͠ͳ͔ͬͨ ▶ ߦ൪߸ΛऔಘͰ͖Δͷ͔ʁ Ұ෦ͷςετϥϯφʔ͕ରԠ͍ͯͨ͠
ߦ൪߸Λςετ͔Βऔಘ͢Δ 55 ▶ ߦ൪߸ΛอଘͰ͖ΔΈΛνʔϜʹఏҊ ▶ ݟࣄड͚ೖΕΒΕɺͬͯΈΔ͜ͱʹ Ϣʔβʔ͔ΒʮιʔείʔυʹδϟϯϓͰ͖Δػೳ͕ཉ͍͠ʯͱ͍͏ཁ͕ ͋ͬͨͷޙԡ͠ʹ
࣮Λͯ͠ΈΔ 56 ▶ ߦ൪߸Λऔಘ͢Δͷҙ֎ͱ͍͠ ͷʹΑͬͯ 0 ߦ͔Β͑Δͷ͋Δ ▶ GitHub ͔Β։͚Δͱศར͡Όͳ͍ʁ
ίʔυδϟϯϓػೳ͕Ͱ͖ͨʂ 57 ▶ ೖࣾલʹ͜Μͳ͜ͱʹͳΔͱࢥ͍ͬͯͳ͔ͬͨ ▶ VS Code Extension ։ൃָ͍͠
ࠓޙʹ͍ͭͯ 58 ▶ ͬͱ VS Code Extension Ͱ໘ന͍͜ͱ͍ͨ͠ WebAssembly ࿈ܞʁ
VS Code Ͱ Launchable ͷ Web ΞϓϦΛݟΕΔΑ͏ʹ͢Δʁ … ▶
·ͱΊ 59 ▶ VS Code Extension ͷ։ൃͷܦݧΛͱʹϓϩμΫτ VS Code ֦ுΛ
Ͳ͏औΓࠐΉ͔ʹ͍͓͍͖ͭͯͤͯͨͩ͠͞·ͨ͠ɻ ▶ VS Code ͷ׆༻ํ๏ͷ৽͍͠ൃݟɺࣗͷϓϩμΫτʹ VS Code Λ ͬͯ໘ന͍͜ͱ͕Ͱ͖ͳ͍͔ͳͱࢥ͍͚ͬͯͨͩΔͱ͍Ͱ͢ɻ
Launchable ͰҰॹʹಇؒ͘Λืूͯ͠·͢ 60
Thank you!