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
Naoto Ono
April 20, 2024
Programming
1
1.1k
VS Code をプロダクトにどう取り込むか
https://vscode.connpass.com/event/308890/
で話した内容です。
Naoto Ono
April 20, 2024
Tweet
Share
More Decks by Naoto Ono
See All by Naoto Ono
Introduction of new features for VS Code debugging
onomax
2
2.2k
Introduction of Tools for providing rich user experience in debugger
onomax
0
3
"debug.gem" の利用体験・開発体験の向上
onomax
0
5
Other Decks in Programming
See All in Programming
Beyond Portability: Live Migration for Evolving WebAssembly Workloads
chikuwait
0
170
從零到一:搭建你的第一個 Observability 平台
blueswen
0
570
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
15
3.2k
TypeScript LSP の今までとこれから
quramy
1
470
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
670
AIエージェントによるテストフレームワーク Arbigent
takahirom
0
350
Parallel::Pipesの紹介
skaji
2
900
生成AIで日々のエラー調査を進めたい
yuyaabo
0
390
Babylon.js 8.0のアプデ情報を 軽率にキャッチアップ / catch-up-babylonjs-8
drumath2237
0
120
Using AI Tools Around Software Development
inouehi
0
1k
社内での開発コミュニティ活動とモジュラーモノリス標準化事例のご紹介/xPalette and Introduction of Modular monolith standardization
m4maruyama
0
110
ktr0731/go-mcpでMCPサーバー作ってみた
takak2166
0
130
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Site-Speed That Sticks
csswizardry
9
620
Building Adaptive Systems
keathley
42
2.6k
Fireside Chat
paigeccino
37
3.5k
Visualization
eitanlees
146
16k
Designing for Performance
lara
609
69k
Designing Experiences People Love
moore
142
24k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
We Have a Design System, Now What?
morganepeng
52
7.6k
Six Lessons from altMBA
skipperchong
28
3.8k
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!