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
ryo
October 16, 2022
Programming
0
3.4k
JSからTSへ移行した Vue.jsプロダクトの型チェックを 漸進的に強化する/ reinforcing the type
Vue Fes Japan 2022
ryo
October 16, 2022
Tweet
Share
More Decks by ryo
See All by ryo
退屈なことはDevinにやらせよう〜〜Devin APIを使ったVisual Regression Testの自動追加〜
kawamataryo
5
1.8k
SaaS公式MCPサーバーをリリースして得た学び
kawamataryo
7
2k
Raycast AI APIを使ってちょっと便利な拡張機能を作ってみた / created-a-handy-extension-using-the-raycast-ai-api
kawamataryo
0
630
ts-morphのパフォーマンス改善Tips
kawamataryo
0
63
webpack to Rspack
kawamataryo
0
69
GitHub Actions と Datadog でコードベースの定点観測
kawamataryo
7
2k
個人開発駆動学習 / personal development driven learning
kawamataryo
1
250
GitHub Trending Bot, Sky Follower Bridge の紹介
kawamataryo
0
450
[Minecraft × ChatGPT] マイクラで作りたいものを伝えると魔法のように作ってくれるコマンドを作る
kawamataryo
0
2.4k
Other Decks in Programming
See All in Programming
NixOS + Kubernetesで構築する自宅サーバーのすべて
ichi_h3
0
1.1k
なんでRustの環境構築してないのにRust製のツールが動くの? / Why Do Rust-Based Tools Run Without a Rust Environment?
ssssota
9
29k
バッチ処理を「状態の記録」から「事実の記録」へ
panda728
PRO
0
190
理論と実務のギャップを超える
eycjur
0
170
テーブル定義書の構造化抽出して、生成AIでDWH分析を試してみた / devio2025tokyo
kasacchiful
0
270
Claude CodeによるAI駆動開発の実践 〜そこから見えてきたこれからのプログラミング〜
iriikeita
0
320
Vueのバリデーション、結局どれを選べばいい? ― 自作バリデーションの限界と、脱却までの道のり ― / Which Vue Validation Library Should We Really Use? The Limits of Self-Made Validation and How I Finally Moved On
neginasu
2
590
XP, Testing and ninja testing ZOZ5
m_seki
3
810
3年ぶりにコードを書いた元CTOが Claude Codeと30分でMVPを作った話
maikokojima
0
620
AI 駆動開発におけるコミュニティと AWS CDK の価値
konokenj
5
180
エンジニアインターン「Treasure」とHonoの2年、そして未来へ / Our Journey with Hono Two Years at Treasure and Beyond
carta_engineering
0
410
ALL CODE BASE ARE BELONG TO STUDY
uzulla
27
6.6k
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
7
580
Building an army of robots
kneath
305
46k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Faster Mobile Websites
deanohume
310
31k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
115
20k
A designer walks into a library…
pauljervisheath
209
24k
Producing Creativity
orderedlist
PRO
347
40k
4 Signs Your Business is Dying
shpigford
185
22k
Code Reviewing Like a Champion
maltzj
526
40k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
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