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
バリデーションライブラリをフォームバリデーション以外で活用する
Search
Keigo Ebihara
October 25, 2023
Programming
0
970
バリデーションライブラリをフォームバリデーション以外で活用する
Keigo Ebihara
October 25, 2023
Tweet
Share
More Decks by Keigo Ebihara
See All by Keigo Ebihara
tRPCを実務に導入して分かった旨味と苦味
misoton665
5
2.2k
しんどくならないモジュール分割
misoton665
1
1.7k
Animated APIを使ってスクロールで隠れる“あのバー”を作る
misoton665
0
380
Other Decks in Programming
See All in Programming
猫と暮らすネットワークカメラ生活🐈 ~Vision frameworkでペットを愛でよう~ / iOSDC Japan 2025
yutailang0119
0
220
デミカツ切り抜きで面倒くさいことはPythonにやらせよう
aokswork3
0
190
AIエージェント時代における TypeScriptスキーマ駆動開発の新たな役割
bicstone
4
1.5k
私はどうやって技術力を上げたのか
yusukebe
43
17k
フロントエンド開発に役立つクライアントプログラム共通のノウハウ / Universal client-side programming best practices for frontend development
nrslib
7
3.9k
dynamic!
moro
9
6.4k
ABEMAモバイルアプリが Kotlin Multiplatformと歩んだ5年 ─ 導入と運用、成功と課題 / iOSDC 2025
akkyie
0
320
Conquering Massive Traffic Spikes in Ruby Applications with Pitchfork
riseshia
0
150
After go func(): Goroutines Through a Beginner’s Eye
97vaibhav
0
230
プログラマのための作曲入門
cheebow
0
540
CSC509 Lecture 06
javiergs
PRO
0
240
Catch Up: Go Style Guide Update
andpad
0
170
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
54
3k
Bash Introduction
62gerente
615
210k
Why Our Code Smells
bkeepers
PRO
339
57k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Practical Orchestrator
shlominoach
190
11k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
GraphQLとの向き合い方2022年版
quramy
49
14k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
RailsConf 2023
tenderlove
30
1.2k
Designing for Performance
lara
610
69k
Transcript
גࣜձࣾθετւݪ όϦσʔγϣϯϥΠϒϥϦΛ ϑΥʔϜόϦσʔγϣϯҎ֎Ͱ׆༻͢Δ #VZ$FMM%FW4UVEZϑϩϯτΤϯυษڧձ
ࣗݾհ w ւݪܓޗʢ!NJTPUPOʣ w גࣜձࣾθετ։ൃຊ෦ w 8FCΞϓϦέʔγϣϯΤϯδχΞ w ओʹϑϩϯτΤϯυΛ୲͍ͯ͠·͢ɻ w
લճ+4$POGKQͰొஃͯ͠·ͨ͠ɻ w ͔ͳΓٱ͠ͿΓͳͷͰ͓खॊΒ͔ʹʜ
ࡐʹ͢ΔόϦσʔγϣϯϥΠϒϥϦ w ;PEͰ͔͠Ͱ͖ͳ͍͜ͱ͠·ͤΜͷͰ҆͝৺͍ͩ͘͞🙋
;PEͱ BDDPVOU4DIFNB \GJSTU/BNF MBTU/BNF^ \GJSTU/BNF MBTU/BNF^ PS 7BMJEBUJPO&SSPS *OQVU
4DIFNB 0VUQVU όϦσʔγϣϯͷ༰Λએݴతʹ4DIFNBͰఆٛɻ
;PEͱ BDDPVOU4DIFNB \GJSTU/BNF MBTU/BNF^ \GVMM/BNF^ PS 7BMJEBUJPO&SSPS 💡4DIFNBʹΑͬͯ*OQVUͱ0VUQVUͷܕ͕ҟͳΔɻ 4DIFNBʹͷมΛؚΊΔ͜ͱ͕Ͱ͖Δɻ
*OQVU 4DIFNB 0VUQVU
;PEʢόϦσʔγϣϯϥΠϒϥϦʣͷ͍ಓ w ओͳ͍ಓ w ϑΥʔϜʹΑΔೖྗͷόϦσʔγϣϯ w "1*ϦΫΤετϨεϙϯεϘσΟͷόϦσʔγϣϯ w ࠓճ͜ΕΒҎ֎ͷ͍ಓΛ͝հ͠·͢ɻ
Ϗϧυ࣌ىಈ࣌ͷ ڥมͷόϦσʔγϣϯʹ͏
ڥม͋Δ͋Δ w 8FCΤϯδχΞɺ୭͠ڥมͰΤϥʔΛىͨ͜͜͠ͱ͋Δઆ w ʮىಈ͚ͨ͠Ͳ࣮ߦ࣌Τϥʔ͕ग़ͯಈ͔ͳ͍ʂʯ w ͋Δڥมͷઃఆ͕࿙Ε͍ͯͨɻ w ʮࠓσϓϩΠͨ͠ΒͳΜ͔ಈ͔ͳ͘ͳͬͯΔʂʯ w
ظ͢Δ͕มΘ͍ͬͯͨͷʹɺڥଆͷΛม͍͑ͯͳ͔ͬͨɻ
ڥมͷόϦσʔγϣϯ w ϦϞʔτڥͰ৽ೖࣾһͷڥߏஙΛख͏࣌ͳͲɺຯʹେมɻ w ΤϥʔΛಡΜͰରͷίʔυΛಡΜͰڥม͕ݪҼͩͱΘ͔Δ·Ͱͷ͕࣌ؒ ͔͔͍ͬͯͨͷ͕ɺϏϧυ࣌ىಈޙʹؾ͚ͮΔɻ w ڥมz֎෦͔ΒͷೖྗzͳͷͰόϦσʔγϣϯ͕ʹཱͭɻ
ڥมͷόϦσʔγϣϯ FOW4DIFNB QSPDFTTFOW ظ͢Δڥม PS 7BMJEBUJPO&SSPS *OQVU 4DIFNB 0VUQVU
1IBOUPNUZQFͷఆٛʹ͏
w ʹΘΕͳ͍ܕҾΛ༩ͨ͠ܕͷ͜ͱɻ w ݩͱͳΔܕಉ͕ͩ͡zׂz͕ҧ͏ͷಉ࢜Λ۠ผ͢ΔͨΊʹ͏ɻ 💡/BNFͷ෦͕3BXͱ&ODPEFEͰҟͳΔͨΊܕΤϥʔʹͳΔɻ 1IBOUPNUZQFͱ ˞5ZQF4DSJQUͰ͋Γ·ͤΜ
5ZQF4DSJQUͰͷ1IBOUPNUZQF w ߏత෦ܕͱ͍͏ΈͰೖՄೳ͔Ͳ͏͔Λݕࠪ ͍ͯ͠Δɻ w ܕͷ໊લͰͳ͘ɺܕ͕ࢦ͢ߏʹΑͬͯαϒλΠϓ ؔ 㲈ܧঝؔ ೖՄೳੑ ͕ܾ·Δɻ
w "ͱ#ؔΛ͍࣋ͬͯͳ͍͕ܕͷࢦ͢ߏ͕αϒ λΠϓؔʹͳ͍ͬͯΔͷͰɺ#ܕͷมʹ"ܕͷΛ ೖͰ͖Δɻ
5ZQF4DSJQUͰͷ1IBOUPNUZQF w ܕ͕ࢦ͢ߏʹ͢ΔͨΊɺ/BNFΛͲ͏ม͑ͯTUSJOHͱղऍ͞ΕΔɻ w 3BX4USJOH&ODPEFE4USJOHTUSJOHͳͷͰɺ54ͰܕΤϥʔʹͳΒͳ͍ɻ w ߏ/BNFΛݩʹͯ͠ม͑Δඞཁ͕͋Δɻ
w z࣮ࡍͷߏzΛม͑ͣʹܕ͕ࢦ͢ߏΛݟ্ͨͰม͑Δϝιουɻ w #SBOEFEUZQFͱݺΕ͍ͯΔͷͰɺ;PEݻ༗ͷͷͰ͋Γ·ͤΜɻ w l3BXzͷ෦Λม͑Δͱߏʹࠩҟ͕ੜ·ΕΔͷͰܕΤϥʔʹͳΔɻ ;PEͷCSBOEϝιου 💡TUSJOHͱҧ͏ߏΛ࣋ͬͨܕʹͳ͍ͬͯΔ
/BNFE4USJOHΛ࣮͢Δ OBNFE4USJOH4DIFNB/BNF TUSJOH TUSJOH#3"/%/BNF PS 7BMJEBUJPO&SSPS *OQVU 4DIFNB 0VUQVU
/BNF ܕҾ
࣮ͨ͠/BNFE4USJOHΛ͏ w [JOGFSεΩʔϚ͔Β0VUQVUͷܕΛಋग़͢ΔͨΊͷͷɻ w OBNFE4USJOH4DIFNBΛͬͯ1IBOUPNUZQFͷΑ͏ʹܕΤϥʔʹͰ͖Δɻ
࠷ޙʹ w ͓ͨ͠ɺ͋Δ͋ΔͳόϦσʔγϣϯҎ֎ͷ͍ಓ w Ϗϧυ࣌ىಈ࣌ͷڥมͷόϦσʔγϣϯʹ͏ɻ w 1IBOUPNUZQFͷఆٛʹ͏ɻ w ଞͷ͍ಓΛ͝ଘͷํੋඇڭ͍͑ͯͩ͘͞😎 w
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
None