$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
tRPCを実務に導入して分かった旨味と苦味
Search
Keigo Ebihara
May 11, 2024
5
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
830
しんどくならないモジュール分割
misoton665
1
1.7k
Animated APIを使ってスクロールで隠れる“あのバー”を作る
misoton665
0
350
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
GraphQLとの向き合い方2022年版
quramy
44
13k
Speed Design
sergeychernyshev
25
650
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
110
49k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
160
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Code Review Best Practice
trishagee
64
17k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
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