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
780
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
1.7k
Other Decks in Programming
See All in Programming
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
280
Git Rebase
bkuhlmann
11
1.6k
Open AI APIを使う前に知っておきたいアカウントTier の話
akki_megane
0
100
2024 コーディング研修
ckazu
0
150
Elm Form Validation
bkuhlmann
0
520
Three ways to use AI on Android: The Good, the Bad and the Ugly
marxallski
0
110
使ってみよう Azure AI Document Intelligence
kosmosebi
2
370
PostmanでAPIの動作確認が楽になった話
h455h1
0
190
Elm 0.19.0 Changes
bkuhlmann
0
510
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
1
200
冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces
upamune
0
1.1k
Introducing Kotlin Multiplatform in an existing mobile app - Workshop Edition | AndroidMakers Paris
prof18
0
170
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
Imperfection Machines: The Place of Print at Facebook
scottboms
261
12k
Happy Clients
brianwarren
92
6.4k
BBQ
matthewcrist
80
8.8k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
Rails Girls Zürich Keynote
gr2m
91
13k
Teambox: Starting and Learning
jrom
128
8.4k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
Become a Pro
speakerdeck
PRO
13
4.6k
How to name files
jennybc
65
93k
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!