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
JSからTSへ移行した Vue.jsプロダクトの型チェックを 漸進的に強化する/ reinfo...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ryo
October 16, 2022
Programming
3.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JSからTSへ移行した Vue.jsプロダクトの型チェックを 漸進的に強化する/ reinforcing the type
Vue Fes Japan 2022
ryo
October 16, 2022
More Decks by ryo
See All by ryo
Bridging Social Graphs
kawamataryo
0
340
Raycast AI APIを使ってちょっと便利なAI拡張機能を作ってみた
kawamataryo
1
590
退屈なことはDevinにやらせよう〜〜Devin APIを使ったVisual Regression Testの自動追加〜
kawamataryo
5
2.3k
SaaS公式MCPサーバーをリリースして得た学び
kawamataryo
7
2.2k
Raycast AI APIを使ってちょっと便利な拡張機能を作ってみた / created-a-handy-extension-using-the-raycast-ai-api
kawamataryo
1
900
ts-morphのパフォーマンス改善Tips
kawamataryo
0
140
webpack to Rspack
kawamataryo
0
140
GitHub Actions と Datadog でコードベースの定点観測
kawamataryo
7
2.1k
個人開発駆動学習 / personal development driven learning
kawamataryo
1
310
Other Decks in Programming
See All in Programming
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
520
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
440
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
560
Deep dive into the select statement (GopherCon UK)
jespino
0
150
Go 1.27 における memory allocation の高速化
andpad
0
340
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
120
AIの中の人になってみる
htkym
0
140
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
420
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
570
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
220
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
34
21k
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
270
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
67
57k
YesSQL, Process and Tooling at Scale
rocio
174
15k
The Language of Interfaces
destraynor
162
27k
How to make the Groovebox
asonas
2
2.4k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
450
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Site-Speed That Sticks
csswizardry
13
1.5k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Designing for Timeless Needs
cassininazir
1
460
Tell your own story through comics
letsgokoyo
1
1k
Unsuck your backbone
ammeep
672
58k
Building Adaptive Systems
keathley
44
3.2k
Transcript
+4͔Β54Ҡߦͨ͠ 7VFKTϓϩμΫτͷܕνΣοΫΛ ਐతʹڧԽ͢Δ 7VF'FT+BQBO
!,BXBNBUB3ZP 👨💻&OHJOFFS!-"13"4JOD 🔥ݩফ࢜ ❤5ZQF4DSJQU 7VF %FOP 3FBDU 🏄ݒਨ ݸਓ։ൃ
ࠓ͢͜ͱ💬
w 7VFKTͷ54ରԠͷྺ࢙ w 54Խ͕ෆશͳ7VFKTϓϩμΫτͷ ܕνΣοΫΛͲͷΑ͏ʹڧԽ͍ͯͬͨ͠ͷ͔
7VFKTͷ54ରԠͷྺ࢙
7VFKT54ରԠͷྺ࢙
7VFKTͷϩʔϯν &WBO:PVࢯʹΑͬͯ 7VFKT͕ެ։
7VF54ͷొ ܕఆٛϑΝΠϧͷఏڙͱɺ 7VFKTͷ"1*Λϥοϓͯ͠ 54͔Β͑ΔΑ͏ʹͨ͠ϓϩδΣΫτ ͕ੜ
7VFKTͷ54ରԠͷ*TTVF 7VFKTຊମͷ54Խɺ54ରԠʹ͍ͭͯͷ แׅతͳ*TTVF͕ߘ͞Εͨɻ ۙ͘ίϝϯτ͕ଓ͖ɺ 7VFKTͷϦϦʔε࣌ʹΫϩʔζ
7VF$MBTT$PNQPOFOUͷੜ 54ͷΫϥεελΠϧͱɺ σίϨʔλΛ͍7VFίϯϙʔωϯτΛ هड़Ͱ͖Δ7VF$MBTT$PNQPOFOU͕ ੜ
54ڥͷେ෯վળ 7VFͷϦϦʔεʹͯ σίϨʔλͳ͠ͷૉͷ7VFͰ UIJTͷܕਪ͕ޮ͘Α͏ʹ
$PNQPTJUJPO"1*ͷϦϦʔε 7VFͷ3'$ΑΓެ։ɻ 7VFFYUFOEͰඞཁͩͬͨ ܕΞϊςʔγϣϯ͕ෆཁͰ ΑΓ54͕ॻ͖͘͢
7VFͷϦϦʔε ෦ϩδοΫ54Ͱॻ͖͑ ΑΓܕ҆શͳ"1*ఏڙ
7VFKTͷ54ରԠͦͷଞͷτϐοΫ🐙 ɾ 5FNQMBUFͰͷܕਪ ➜WVFUTDͰͷܕνΣοΫɺ7PMBSͰͷΤσΟλαϙʔτ ɾ5FNQMBUFͰͷ0QUJPOBM$IBJOJH OVMMJTIDPMFTDSJOH ➜7VFͰαϙʔτ ɾ 4UPSFʢ7VFYʣͷܕαϙʔτ ➜7VFYͰͷରԠɺܕ҆શͳ1JOJB
7VFKTͷ54ରԠͦͷଞͷτϐοΫ🐙 ɾ 5FNQMBUFͰͷܕਪ ➜WVFUTDͰͷܕνΣοΫɺ7PMBSͰͷΤσΟλαϙʔτ ɾ5FNQMBUFͰͷ0QUJPOBM$IBJOJH OVMMJTIDPMFTDSJOH ➜7VFͰαϙʔτ ɾ 4UPSFʢ7VFYʣͷܕαϙʔτ ➜7VFYͰͷରԠɺܕ҆શͳ1JOJB
7VFKTͷ54ରԠͦͷଞͷτϐοΫ🐙 ɾ 5FNQMBUFͰͷܕਪ ➜WVFUTDͰͷܕνΣοΫɺ7PMBSͰͷΤσΟλαϙʔτ ɾ5FNQMBUFͰͷ0QUJPOBM$IBJOJH OVMMJTIDPMFTDSJOH ➜7VFͰαϙʔτ ɾ 4UPSFʢ7VFYʣͷܕαϙʔτ ➜7VFYͰͷରԠɺܕ҆શͳ1JOJB
7VFKTͷ54ରԠͦͷଞͷτϐοΫ🐙 ɾ 5FNQMBUFͰͷܕਪ ➜WVFUTDͰͷܕνΣοΫɺ7PMBSͰͷΤσΟλαϙʔτ ɾ5FNQMBUFͰͷ0QUJPOBM$IBJOJH OVMMJTIDPMFTDSJOH ➜7VFͰαϙʔτ ɾ 4UPSFʢ7VFYʣͷܕαϙʔτ ➜7VFYͰͷରԠɺܕ҆શͳ1JOJB
ࠓ͏7VFKTͷ54ରԠॆ࣮͍ͯ͠Δ
54Խ͕ෆશͳ7VFKTϓϩμΫτͷ ܕνΣοΫΛڧԽ͢Δ
ͲΜͳϓϩμΫτʁ📦
ߏ%KBOHPʷ7VFKTʢܥʣ ॳظίϛοτɿ 54ಋೖ࣌ظɿ ؔ࿈ϑΝΠϧɿ7VFKT4'$ 54˞ ˞ͭͷϓϩμΫτͷ߹ܭ
54Խ͕ෆશͱʁ🤔
w AMBOHlUTzAͱ͍ͯ͠ͳ͍7VF4'$ϑΝΠϧ͕ଟ͋Δ w ATUSJDUUSVFAͰͳ͘؇͍ܕνΣοΫͱͳ͍ͬͯΔ w $*ͰܕνΣοΫ͕࣮ߦ͞Ε͍ͯͳ͍ w ܕΤϥʔ͕์ஔ͞ΕҰ෦ϑΝΠϧͰΤσΟλ͕ਅͬ w TUSJDUUSVFͱ͢ΔͱܕΤϥʔ૯ʢ
ʣ
˞&SSPS-FOTΛ͍ͬͯΔͷͰ&SSPS͕ڧௐ͞Εͯ·͢ ˞͜͜·Ͱ͍ͷۃʑҰ෦Ͱ͢ ࣌ͷΤσΟλ
ͳͥܕνΣοΫΛڧԽ͍ͨ͠ͷʁ🛡
ɾ ࣮ߦ࣌Τϥʔͷճආ ɾ ܕਪɾΦʔτίϯϓϦʔτʹΑΔ։ൃମݧͷ্ ɾ อकੑͷ্ʢػೳվमɺϦϑΝΫλͰͷσάϨճආʣ ɾ 7VFόʔδϣϯΞοϓͷੴ ɾ ਅͬͳΤσΟλΛͳΜͱ͔͍ͨ͠
ϓϩδΣΫτ֓ཁ🔧
ϓϩδΣΫτ໊ɿਅͷ5ZQF4DSJQUԽ Ϧιʔεɿ໊ Ћ ظؒɿ݄ʙݱࡏ ॳظ!ZVJDILVOͦͷޙ!.BTB4IJO ʹ͢͢ΊͯΒ͍ɺࣗํܾఆɾαϙʔτͷΈ
ͲͷΑ͏ʹਐΊͨʁ🛣
%FTJHO%PDͷ࡞
ͳͥɺԿͷͨΊʹɺͲͷΑ͏ʹ։ൃΛ͢͢ΊΔ͔Λه ͨ͠υΩϡϝϯτɻ എܠɺઃܭɺτϨʔυΦϑɺϦεΫͳͲʹ͍ͭͯ· ͱΊ্ͨͰɺϝϯόʔؒͰϨϏϡʔ͢Δɻ %FTJHO%PDͱʁ
ɾ ඞཁͳ͚Εແཧʹ$PNQPTJUJPO"1*ʢTFUVQʣʹॻ͖͞ͳ͍ ɾ 54➜7VFKT4'$4DSJQU෦➜UFNQMBUF෦ͷॱͰॱ࣍ܕΤ ϥʔΛमਖ਼͢Δ ɾ ৽نʹܕΤϥʔ͕ࠞೖ͢ΔͷΛ͙ͨΊɺ·ͣ$*ͰͷܕνΣοΫ Λಋೖ͢Δ ࣮ࡍʹఆΊ੍ͨ
54ԽͷδϨϯϚΛղফ͢Δ
$*ͰܕνΣοΫΛ࣮ߦͯ͠ɺ ৽نίʔυʹܕΤϥʔ͕ ࠞೖ͢Δ͜ͱ͍͗ͨ طଘͷίʔυʹܕΤϥʔ͕ଟ ͗ͯ͢ɺڧ͍ܕνΣοΫͷઃ ఆͰ$*Λ௨͢͜ͱ͕Ͱ͖ͳ͍ 74 54ԽͷδϨϯϚ😵💫
طଘͷܕΤϥʔશͯʹ!UTFYQFDUFSSPSΛ͚ͭͯ ܕΤϥʔΛճආ্ͨ͠Ͱɺ$*ʹܕνΣοΫΛՃ͢Δ ˞ !UTFYQFDUFSSPS࣍ߦͷܕΤϥʔΛ੍͢Δίϝϯτɻ࣍͠ߦʹ ܕΤϥʔ͕ͳ͘ͳͬͨ߹ɺ!UTFYQFDUFSSPSࣗମ͕ΤϥʔʹͳΔ ղফํ๏💊
ͰΤϥʔ͕͋Γ͗ͯ͢େม🥲
πʔϧΛ࡞Ζ͏🦾
5ZQF4DSJQU$PNQJMFS"1*Λ͍ 54ͷܕΤϥʔൃੜՕॴʹɺ !UTFYQFDUFSSPSͷίϝϯτΛҰׅૠೖ ܕΤϥʔΛແޮԽ͢Δ$-*πʔϧɻ 7VFKT4'$ͷTDSJQU෦ʹରԠ LBXBNBUBSZP TVQQSFTTUTFSSPST
54 549ͳͲจ຺ΛΈͯదͳίϝϯτ͕ૠೖ͞ΕΔ
TVQQSFTTUTFSSPSΛ࣮ߦͨ͠13 54Λ➜ʹΞοϓσʔτ ͞ΒʹTUSJDUUSVFʹ্ͨ͠Ͱɺ !UTFYQFDUFSSPSΛՃ
ˏUTFYQFDUFSSPSΛॱ࣍͢
54ԽͷδϨϯϚΛղফ͠ɺ $*ͰܕνΣοΫΛ௨͢͜ͱ͕ग़དྷͨͷͰɺ ৽نίʔυʹܕΤϥʔ͕ࠞೖ͢Δ͜ͱ͛Δ طଘͷܕΤϥʔΛ͢͜ͱʹूதͰ͖Δ
54ͷΤϥʔछผ͝ͱʹɺ ͻͨ͢ΒܕΤϥʔΛղফ͍ͯ͘͠
ˏUTFYQFDUFSSPSͷՃ $*ͷܕνΣοΫڧԽ !UTFYQFDUFSSPSͷॱ࣍আ 54ϑΝΠϧɺ7VFKT4'$ͷ4DSJQU෦ͷॱͰ ࣮ߦ͍ͯ͘͠ɻ
ͦͷଞϙΠϯτ💡
੩తΞηοτͷࠩൺֱͰϨϏϡʔෛՙΛܰݮ
(JU)VC"DUJPOTͰ13͝ͱʹ੩తΞηοτͷ Ϗϧυ݁ՌΛ.BTUFSϒϥϯνͱൺֱɻ Ϗϧυ݁Ռʹࠩग़ͳ͍ ➜ϓϩμΫτͷಈ࡞ʹมԽͳ͍ͳͷͰɺ EJ ff ͕ଟͯ҆͘৺ײΛ࣋ͬͯϚʔδग़དྷΔ ˞7VFKT4'$ͷ߹ɺܕͷมߋͷΈͰ͕ࠩ ग़ͨͷͰɺ͋͘·Ͱ54ϑΝΠϧݶఆ
ϦϑΝΫλπʔϧͷར༻ɾ։ൃͰޮԽ
NJZBPLB WVFDPNQPTJUJPODPOWFSUFS 0QUJPOT"1*Λ$PNQPTJUJPO"1*ʹ ࣗಈม͢Δπʔϧɻ 4FUVQʹॻ͖͑ͳ͚ΕɺΒͳ͍ܕΤϥʔΛ ࣋ͭίϯϙʔωϯτͷมͰར༻
7VFFYUFOEͨͩͷPCKFDUΛ͍ͬͯΔMBOHlUTzͷ 7VFKT4'$ϑΝΠϧΛɺEF fi OF$PNQPOFOU ʜ ʹม͢Δ πʔϧɻ 7PMBS͕7VFFYUFOEͰదͳܕਪΛͯ͘͠Εͳ͍ Λղܾ͢ΔͨΊʹେ׆༂ɻ .BTB4IJO
EF fi OFDPNQPOFOUDPOWFSUFS
7VFKT4'$ͷTDSJQU෦ͷΈΛܕνΣοΫ͢Δ$-*πʔϧɻ 5FNQMBUF෦ͷܕΤϥʔ͕ଟ͗ͯ͢WVFUTDΛ$*Ͱ࣮ߦ͢ Δ͜ͱग़དྷͳ͍͕ɺTVQQSFTTUTFSSPSTͰ!UTFYQFDU FSSPSΛ༩Ͱ͖ΔTDSJQU෦ͷΈܕνΣοΫ͍ͨ͠ͱ͍ ͏ࢥ͍͔Β։ൃɻ LBXBNBUBSZP WVFTDSJQUUZQFDIFDL
ෛ࠴ղফμογϡϘʔυͰਐḿঢ়گΛՄࢹԽ
(JU)VC"DUJPOTͱ[Yɺ%BUBEPHΛͬͯɺ ࡞ͬͨϑϩϯτΤϯυͷίʔυϕʔεͷঢ়گ ΛՄࢹԽ͢ΔμογϡϘʔυ 7VF4'$ͷ54Խ 54&SSPSͷʢUTFYFDUFSSPSΛؚΉʣ ΧόϨοδ ͳͲͳͲΛ࣌Ͱܭଌ͍ͯ͠Δɻ ˞μϛʔͰ͢
݁Ռ🏍
🔴#FGPSF 🟢"GUFS 5ZQF4DSJQUͷόʔδϣϯ ܥ ܥ $*ͰͷܕνΣοΫ 54ͷΈ 54 7VF4'$˞ 4USJDU
'"-4& 536& ܕΤϥʔ UFNQMBUF෦ Ҏ֎΄΅ͳ͠˞
·ͱΊ🏁
ɾ ࠓͷ7VFKTͰ5ZQF4DSJQUͷԸܙΛॆड͚ΒΕΔ ɾ 54ԽΛॱ࣍͢͢ΊΔʹ!UTFYQFDUFSSPS͕͓͢͢Ίɹ ʢTVQQSFTTUTFSSPSTͬͯͶʣ ɾ ෛ࠴ղফϓϩδΣΫτ࣍ୈͰޮԽ͕Մೳ 7VFڥͰͷ7PMPSͷରԠͳͲͰҰ෦ϋϚΔͱ͜Ζ͋ͬͨ ͕ɺܕΤϥʔղফࣗମ٧·Δͱ͜Ζ͋·Γͳ͍ɻ πʔϧ͕͋Δ͜ͱͰ։ൃޮVQʹܨ͕ͬͨɻ
&OE