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
tRPCを実務に導入して分かった旨味と苦味
Search
Keigo Ebihara
May 11, 2024
5
1.8k
tRPCを実務に導入して分かった旨味と苦味
TSKaigi 2024 14:40~ トラック2
Keigo Ebihara
May 11, 2024
Tweet
Share
More Decks by Keigo Ebihara
See All by Keigo Ebihara
バリデーションライブラリをフォームバリデーション以外で活用する
misoton665
0
780
しんどくならないモジュール分割
misoton665
1
1.7k
Animated APIを使ってスクロールで隠れる“あのバー”を作る
misoton665
0
350
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
48
7.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
322
23k
What's in a price? How to price your products and services
michaelherold
242
11k
Embracing the Ebb and Flow
colly
83
4.4k
Web development in the modern age
philhawksworth
204
10k
How STYLIGHT went responsive
nonsquared
93
5.1k
Agile that works and the tools we love
rasmusluckow
327
20k
Atom: Resistance is Futile
akmur
261
25k
Designing the Hi-DPI Web
ddemaree
278
34k
For a Future-Friendly Web
brad_frost
174
9.3k
How To Stay Up To Date on Web Technology
chriscoyier
786
250k
A Philosophy of Restraint
colly
202
16k
Transcript
U31$Λ࣮ʹಋೖ͔ͯͬͨ͠ ࢫຯͱۤຯ 54,BJHJ ւݪܓޗ
w ւݪܓޗ 9!NJTPUPO w גࣜձࣾθετ8FCΞϓϦέʔγϣϯΤϯδχΞ w 5ZQF4DSJQU &MN (P
4DBMB ࣗݾհ
ΞδΣϯμ w U31$ͱ w U31$ͷΈ͔Βੜ·ΕΔࢫຯɾۤຯ w %BUB5SBOTGPSNFS w "EBQUFS w
ฐࣾͰͷ׆༻๏͔Βੜ·ΕΔࢫຯɾۤຯ w αʔόʔΞϓϦέʔγϣϯͷߏ w ϦϙδτϦͷߏ
U31$ͱ w 5ZQF4DSJQUͰUZQFTBGFʹ31$Λ։ൃ͢ΔͨΊͷϥΠϒϥϦ w 1SPDFEVSFͷJOQVUPVUQVUͷܕΛίʔυੜͳ͠ͰΫϥΠΞϯτʹڞ༗ w ݱࡏɺWCFUB͕ެ։தʢεϥΠυதͷίʔυWʣ IUUQTUSQDJP
ܕʹؔͯ͠(SBQI2-ͱൺֱ 4FSWFS"QQ $MJFOU"QQ (SBQI2-4DIFNB (SBQI2-4FSWFS (SBQI2-$MJFOU 4FSWFS"QQ $MJFOU"QQ "QQ3PVUFSUZQF
(SBQI2- U31$ ίʔυੜ ίʔυੜ ܕಋग़ ࢀর ࢀর ࢀর
ɹɹɹɹɹɹɹɹɹɹɹαϯϓϧίʔυ 4FSWFS $MJFOU
ܕʹؔͯ͠(SBQI2-ͱൺֱ w (SBQI2-4DIFNBΛத৺ʹ4FSWFS $MJFOUͦΕͧΕʹ͚ͯίʔυੜ w ίʔυ্ɺ$MJFOU͕4FSWFSʹґଘ͠ͳ͍ w 4FSWFS"QQ͔Β$MJFOUڞ༗༻ͷܕΛੜ w $MJFOU͕4FSWFSͷܕʹґଘ͍ͯ͠Δ
(SBQI2- U31$
ΞδΣϯμ w U31$ͱ w U31$ͷΈ͔Βੜ·ΕΔࢫຯɾۤຯ w %BUB5SBOTGPSNFS w "EBQUFS w
ฐࣾͰͷ׆༻๏͔Βੜ·ΕΔࢫຯɾۤຯ w αʔόʔΞϓϦέʔγϣϯͷߏ w ϦϙδτϦͷߏ
ɹɹɹɹɹɹɹɹɹɹɹαϯϓϧίʔυ 4FSWFS $MJFOU
%BUB5SBOTGPSNFS w 1SPDFEVSFʹର͢ΔJOQVUPVUQVUͷTFSJBMJ[FEFTFSJBMJ[FΛߦ͏ w σϑΥϧτ+40/TUSJOHJGZ+40/QBSTF 1SPDFEVSF %BUB5SBOTGPSNFS +40/ %BUB5SBOTGPSNFS
$BMMFS )551 +40/
%BUB5SBOTGPSNFS w %BUB5SBOTGPSNFSΛมߋՄೳ w TVQFSKTPOͳͲΛ༻ͯ͠+40/ʹϝλใΛ༩
%BUB5SBOTGPSNFS w ϝλใΛݩʹ1MBJOͰͳ͍ΦϒδΣΫτ෮ݩ͕Մೳ 1SPDFEVSF TVQFSKTPO +40/ ϝλใ TVQFSKTPO $BMMFS
)551 +40/ ϝλใ
%BUB5SBOTGPSNFSࢫຯ w 1SPDFEVSFͷJOQVUPVUQVUʹ༻Ͱ͖Δܕ͔Ͳ͏͔%BUB5SBOTGPSNFS ͷදݱྗͰܾ·Δ w %BUB5SBOTGPSNFS͕࣮Ͱ͖ΕͲΜͳܕͰ༻Ͱ͖Δ w #SBOEFE5ZQFɺ%JTDSJNJOBUFEVOJPOɺ4USJOHMJUFSBMͳͲɺ͕୯७ʹ TFSJBMJ[FՄೳͳܕ࿑ྗͳ͘༻Ͱ͖Δ
%BUB5SBOTGPSNFSۤຯ w ຊདྷͷσʔλྔʹϝλใͷσʔλ͕૿͑Δ w ͷʹΑΔ͕ɺ͍͍ͩͨશମαΠζͷ͕ϝλใʹͳΔ w ύϑΥʔϚϯεʹӨڹ͕ग़Δ߹͕͋Δ w ରࡦͱͯ͠ɺPVUQVUͷTFSJBMJ[F EFTFSJBMJ[FαΠζॏࢹͰ࣮͢Δ
w JOQVUσʔλྔ͕େ͖͘ͳΓͮΒ͍ͷͰɺσόοάͷ͢͠͞ͱͷόϥϯε
%BUB5SBOTGPSNFSۤຯ w ܕΨʔυؔͱಉ͡Ͱɺ%BUB5SBOTGPSNFS͕ӕΛ͘ͱܕͱ͕ζϨΔ w ܕݕࠪͰ͙͜ͱ͕Ͱ͖ͳ͍ͨΊɺ65Λॻ͘ͳͲ͕ରࡦʹͳΔ
"EBQUFS w ίΞύοέʔδ୯ମͰαʔόʔΞϓϦέʔγϣϯͷػೳఏڙ͍ͯ͠ͳ͍ w "EBQUFSύοέʔδΛ͍ɺ&YQSFTT 'BTUJGZ /FYUKTͳͲͷ্ʹͤΔ w ;&45Ͱ'BTUJGZΛ͍ͬͯ·͢ w
U31$ఏڙͷύοέʔδͷΈͰͷىಈͰ͖Δ 4UBOEBMPOF"EBQUFS
"EBQUFSࢫຯ w αʔόʔΞϓϦέʔγϣϯͱಠཱ͍ͯ͠ΔͷͰʮҰ෦͚ͩU31$ʹஔ͖͑ͯ ΈΔʯͱ͍͏͍ํ͕Ͱ͖Δɻ w U31$ʹແ͍ػೳΛͱͳΔαʔόʔΞϓϦέʔγϣϯͷػೳͰิ͑Δ w ϑΥʔϜσʔλ w ϑΝΠϧμϯϩʔυͳͲ
"EBQUFSۤຯ w ࢲݟU31$+40/Λͬͨ31$͕த৺ͷϥΠϒϥϦͰ͋Δ w ϑΥʔϜσʔλΛѻ͏ϓϥάΠϯ͋Δ͕·ͩFYQFSJNFOUBM w %BUB5SBOTGPSNFSϧʔτʹ͍ۙͱ͜ΖͰઃఆ͢ΔͨΊɺଟ༷ͳ$POUFOU5ZQFʹରԠͰ ͖Δߏʹͳ͍ͬͯͳ͍ w ʮͰ͖Δ͚ͩU31$ʹدͤΔʯͱ͍͏ΑΓʮU31$͕ಘҙͳ͜ͱΛΒͤΔʯ
w ʹͨ͠αʔόʔΞϓϦέʔγϣϯͱU31$ͷ྆ྠͰ։ൃ͢Δํ͕ݱ࣮త
ΞδΣϯμ w U31$ͱ w U31$ͷΈ͔Βੜ·ΕΔࢫຯɾۤຯ w %BUB5SBOTGPSNFS w "EBQUFS w
ฐࣾͰͷ׆༻๏͔Βੜ·ΕΔࢫຯɾۤຯ w αʔόʔΞϓϦέʔγϣϯͷߏ w ϦϙδτϦͷߏ
ͳͥU31$Λ࠾༻ͨ͠ͷ͔ʁ w αʔόʔαΠυͱϑϩϯτΤϯυΛԣஅͰ͖Δ৫Λࢦ͍ͯ͠Δ w ։ൃ༰ʹԠͯ͡ϦιʔεΛ࠷దԽ͘͢͢͠ΔͨΊ w αʔόʔͱϑϩϯτͲͪΒ5ZQF4DSJQUΛ࠾༻ɻٕज़తʹ৺ཧతʹԣ அ͘͢͢͠Δͷ͕ૂ͍ w ݴޠ͕ܾ·͍ͬͯΔ͜ͱͷڧΈΛ׆͔ͨ͢ΊʹU31$Λ࠾༻
αʔόʔΞϓϦέʔγϣϯͷߏ 1SPDFEVSF <U31$> 6TFDBTF .PEFM <;PE> %"0 <1SJTNB> w
*OQVUUZQF w 0VUQVUUZQF w SVO
0VUQVUͷܕઃܭ 0VUQVU.PEFMͷܕΛՃͯ͠ఆٛɻ[QJDL [NFSHFͳͲΛ͏Πϝʔδ
.PEFMΛڞ༗͍ͨ͠ʁˠ/P w ࢲݟαʔόʔαΠυઢͰఆ͍ٛͨ͠.PEFMͱΫϥΠΞϯτઢͰఆٛͨ͠ ͍.PEFMҰக͠ͳ͍ w ࠷ۙͷϑϩϯτΤϯυ։ൃதԝूݖతͳঢ়ଶཧ͔Βɺίϯϙʔωϯτ͕ ࣗͰϦΫΤετΛୟ͘ߏʹγϑτ͍ͯ͠Δ w ͜ͷߏͱ૬ੑ͕ѱ͍
w γϯϓϧʹɺΫϥΠΞϯτʹڞ༗͢ΔܕͷΫΦϦςΟΛ্͛Δత
αʔόʔΞϓϦέʔγϣϯͷߏࢫຯ w U31$ͷಛͰ͋Δܕͷڞ༗ͷԸܙΛड͚͍͢ߏ w 0VUQVUUZQFͰ࡞ΓࠐΜͩܕ͕ڞ༗͞ΕΔ w ແବʹײ͍͢͡ͷ٧Ίସ͑࡞ۀͷΑ͏ͳίʔυ͕ى͖ͮΒ͍
αʔόʔΞϓϦέʔγϣϯͷߏۤຯ w αʔόʔαΠυͰͷܕͷෳࡶ͕͞ΫϥΠΞϯταΠυʹൖ͞ΕΔ w ਅ໘ʹ.PEFMΛఆٛ͢Δͱඞવతʹσʔλߏ͕ෳࡶʹͳ͍ͬͯ͘ w ;PEͰෳࡶͳσʔλߏΛఆٛ͢ΔͨΊʹΛڽΒ͢ˠੜ͞ΕΔܕ͕ ΑΓෳࡶʹɻ݁Ռ*%&͕ॏ͘ͳͬͨΓ w
ͦͷ.PEFMΛݩʹ࡞ͬͨ0VUQVU͕ΫϥΠΞϯτʹΔ w ࠜຊతͳղܾํ๏·ͩݟ͔ͭΒͣɻࣝऀͷํڭ͍͑ͯͩ͘͞
ϦϙδτϦͷߏ w U31$αʔόʔͷύοέʔδΛΫϥΠΞϯτ͔ΒࢀরͰ͖Δඞཁ͕͋Δ w ϞϊϨϙʹͯ͠ZBSOXPSLTQBDFͰཧ w ϨϙδτϦΛ͚ΔબࢶɻύοέʔδͷόʔδϣϯཧΛ͢Δͱܕ͕ ڞ༗͞ΕΔλΠϛϯά͕όʔδϣϯ୯Ґʹͳͬͯ͠·͏ w U31$ͷࢫຯΛຯΘ͏ͨΊɺϦΞϧλΠϜʹڞ༗͞ΕΔϞϊϨϙʹͨ͠
ϦϙδτϦͷߏࢫຯ w αʔόʔͷఆٛΛม͑ΔͱͦͷͰΫϥΠΞϯτଆͰܕΤϥʔ͕ग़Δ w ͜Ε͕U31$ʹͨ͜͠ͱʹΑΔҰ൪ͷࢫຯ w ٕज़ྖҬΛԣஅͯ҆͠৺ͯ͠มߋΛߦ͑ΔҰͭͷॿ͚ʹͳ͍ͬͯΔ
ϦϙδτϦͷߏۤຯ w ϞϊϨϙʹͨ͜͠ͱʹΑΓɺXPSLTQBDFপʹϋϚΓ͍͢ w ݱঢ়ZBSOXPSLTQBDFΛ͍ͬͯΔ͕ɺ׆༻͖͠Ε͍ͯͳ͍ w ͨͩɺU31$ʹൺΕݟͨ͘͞Μ͋Δɻղܾൺֱత͍͢͠ɻ
·ͱΊ w ࢫຯɾۤຯ w %BUB5SBOTGPSNFS w "EBQUFS w αʔόʔΞϓϦέʔγϣϯͷߏ w
ϦϙδτϦߏ w ·ͩݟ͕গͳ͍ϥΠϒϥϦͳͷͰɺݚڀͷ༨͕ͨ͘͞Μ͋Δ w 'VMM5ZQF4DSJQUͰͷ։ൃΛࢧ͑Δཁૉͱͯ͠ʹཱ͍ͬͯΔ
8FBSFIJSJOH 'VMM5ZQF4DSJQUɺαʔόʔϑϩϯτԣஅ৫ʹڵຯ͕͋Δํੋඇ
None