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
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
2k
Other Decks in Programming
See All in Programming
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
3
940
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
N.E.X.T LEVEL
pluu
2
300
生成AIでGitHubソースコード取得して仕様書を作成
shukob
0
150
良いユニットテストを書こう
mototakatsu
4
1.6k
命名をリントする
chiroruxx
1
380
CSC509 Lecture 14
javiergs
PRO
0
130
Haze - Real time background blurring
chrisbanes
1
500
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
5
900
あれやってみてー駆動から成長を加速させる / areyattemite-driven
nashiusagi
1
200
CSC305 Lecture 25
javiergs
PRO
0
130
nekko cloudにおけるProxmox VE利用事例
irumaru
3
420
Featured
See All Featured
Practical Orchestrator
shlominoach
186
10k
Rails Girls Zürich Keynote
gr2m
94
13k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Docker and Python
trallard
41
3.1k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Statistics for Hackers
jakevdp
796
220k
A Tale of Four Properties
chriscoyier
157
23k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Site-Speed That Sticks
csswizardry
2
190
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Embracing the Ebb and Flow
colly
84
4.5k
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!