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
730
バリデーションライブラリをフォームバリデーション以外で活用する
Keigo Ebihara
October 25, 2023
Tweet
Share
More Decks by Keigo Ebihara
See All by Keigo Ebihara
tRPCを実務に導入して分かった旨味と苦味
misoton665
5
1.7k
しんどくならないモジュール分割
misoton665
1
1.6k
Animated APIを使ってスクロールで隠れる“あのバー”を作る
misoton665
0
340
Other Decks in Programming
See All in Programming
DDDを志して3年経ったら「DDDの皮を被ったクリーンアーキテクチャ」になった話【デブサミ2024夏】
texmeijin
1
620
12年前の『型システム入門』翻訳の思い出話
mame
11
1.2k
Clean Architecture by TypeScript & NestJS
ryounasso
0
150
SRE チーム立ち上げ前に考えたこと・取り組んだこと / Considerations and Preparations Before Establishing an SRE Team
mackey0225
3
320
유연한 Composable 설계
l2hyunwoo
0
380
継続的な活動で築く地方エンジニアの道
myamashii
2
360
Terraformテスト入門
msato
0
540
大規模マルチテナントを解決するYugabyteDBという選択肢
nnaka2992
1
250
小さな開発会社を作った理由
polidog
0
1.9k
CSC307 Lecture 13
javiergs
PRO
0
150
Temporalを取り巻く仕様を整理する
sajikix
0
110
Async Await: Mastering Python's Time-Bending Tricks - EuroPython2024
yanbo
1
290
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
20
7.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
353
29k
We Have a Design System, Now What?
morganepeng
46
7k
For a Future-Friendly Web
brad_frost
173
9.2k
4 Signs Your Business is Dying
shpigford
178
21k
Learning to Love Humans: Emotional Interface Design
aarron
269
39k
Code Review Best Practice
trishagee
58
16k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
17
8.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
36
9.1k
Producing Creativity
orderedlist
PRO
340
39k
Agile that works and the tools we love
rasmusluckow
325
20k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
189
16k
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