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
2.2k
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
910
しんどくならないモジュール分割
misoton665
1
1.7k
Animated APIを使ってスクロールで隠れる“あのバー”を作る
misoton665
0
370
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
6
650
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
610
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
180
53k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Making Projects Easy
brettharned
116
6.2k
Into the Great Unknown - MozCon
thekraken
38
1.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Facilitating Awesome Meetings
lara
54
6.4k
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