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
870
バリデーションライブラリをフォームバリデーション以外で活用する
Keigo Ebihara
October 25, 2023
Tweet
Share
More Decks by Keigo Ebihara
See All by Keigo Ebihara
tRPCを実務に導入して分かった旨味と苦味
misoton665
5
2.1k
しんどくならないモジュール分割
misoton665
1
1.7k
Animated APIを使ってスクロールで隠れる“あのバー”を作る
misoton665
0
360
Other Decks in Programming
See All in Programming
LINE messaging APIを使ってGoogleカレンダーと連携した予約ツールを作ってみた
takumakoike
0
120
未経験でSRE、はじめました! 組織を支える役割と軌跡
curekoshimizu
1
160
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
140
複数のAWSアカウントから横断で 利用する Lambda Authorizer の作り方
tc3jp
0
120
React 19アップデートのために必要なこと
uhyo
8
1.5k
Visual StudioのGitHub Copilotでいろいろやってみる
tomokusaba
1
210
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.6k
AIの力でお手軽Chrome拡張機能作り
taiseiue
0
190
Jakarta EE meets AI
ivargrimstad
0
440
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
150
ABEMA iOS 大規模プロジェクトにおける段階的な技術刷新 / ABEMA iOS Technology Upgrade
akkyie
1
210
新宿駅構内を三人称視点で探索してみる
satoshi7190
2
120
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
A Modern Web Designer's Workflow
chriscoyier
693
190k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Automating Front-end Workflow
addyosmani
1368
200k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
A better future with KSS
kneath
238
17k
Facilitating Awesome Meetings
lara
52
6.2k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
How to train your dragon (web standard)
notwaldorf
91
5.9k
Thoughts on Productivity
jonyablonski
69
4.5k
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