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
RxSwiftに対応したバリデーションをGenericなProtocolで実装してみた / G...
Search
Yuto Yazaki
February 28, 2019
Programming
3
1.4k
RxSwiftに対応したバリデーションをGenericなProtocolで実装してみた / Generic Validation Protocol with RxSwift
https://github.com/yutoyazaki/RxValidationSample
Yuto Yazaki
February 28, 2019
Tweet
Share
More Decks by Yuto Yazaki
See All by Yuto Yazaki
デザインシステム上の画像リソースを 自動エクスポートする / Automate image export from Figma to iOS and Android using figma-export
yutoyazaki
0
970
Firebase Remote Config ベストプラクティス
yutoyazaki
0
860
Other Decks in Programming
See All in Programming
Atomics APIを知る / Understanding Atomics API
ssssota
1
130
Web エンジニアが JavaScript で AI Agent を作る / JSConf JP 2025 sponsor session
izumin5210
3
1k
Register is more than clipboard
satorunooshie
1
460
SUZURIの規約違反チェックにおけるクリエイタフィードバックの試⾏錯誤/Trial and Error in Creator Feedback for SUZURI's Terms of Service Violation Checks
ae14watanabe
1
140
ノーコードからの脱出 -地獄のデスロード- / Escape from Base44
keisuke69
0
680
The Missing Link in Angular's Signal Story: Resource API and httpResource
manfredsteyer
PRO
0
110
Introducing RemoteCompose: break your UI out of the app sandbox.
camaelon
2
540
詳細の決定を遅らせつつ実装を早くする
shimabox
1
1k
flutter_kaigi_2025.pdf
kyoheig3
1
260
Stay Hacker 〜九州で生まれ、Perlに出会い、コミュニティで育つ〜
pyama86
1
630
Blazing Fast UI Development with Compose Hot Reload (droidcon London 2025)
zsmb
0
500
チーム開発の “地ならし"
konifar
6
3.8k
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
For a Future-Friendly Web
brad_frost
180
10k
Bash Introduction
62gerente
615
210k
GitHub's CSS Performance
jonrohan
1032
470k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Side Projects
sachag
455
43k
Typedesign – Prime Four
hannesfritz
42
2.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
A designer walks into a library…
pauljervisheath
210
24k
Building an army of robots
kneath
306
46k
How GitHub (no longer) Works
holman
315
140k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Transcript
3Y4XJGUʹରԠͨ͠όϦσʔγϣϯΛ (FOFSJDͳ1SPUPDPMͰ࣮ͯ͠Έͨ QPUBUPUJQT 㟒༤ਓ:B[BLJ:VUP
ࣗݾհ w ͓͍͍͠ʂΛ࡞ΔϨγϐಈըϝσΟΞʮNPHVOBʯͷJ04ΤϯδχΞ w ৽ଔ✨ w ֶੜ࣌ʹษڧձӡӦͯ͠·ͨ͠ʢࣾձਓʹͳͬͯൃදॳΊͯʣ άϦʔגࣜձࣾ ࠂɾϝσΟΞࣄۀຊ෦ϥΠϑελΠϧࣄۀ෦ ϝσΟΞάϧʔϓ։ൃνʔϜ
㟒༤ਓ:B[BLJ:VUP
3Y4XJGUʹରԠͨ͠όϦσʔγϣϯΛ (FOFSJDͳ1SPUPDPMͰ࣮ͯ͠Έͨ
3Y4XJGUʹରԠͨ͠όϦσʔγϣϯΛ࡞Γ͍ͨ w Ϣʔβͷೖྗ༰ΛόϦσʔγϣϯ͍ͨ͠ w ྫOจࣈҎ ෆਖ਼ͳॻࣜͷνΣοΫ FUD w Τϥʔͷཧ༝Λఏࣔͯ͠Ϣʔβʹमਖ਼ͯ͠Β͏ w
3Y4XJGUͰόΠϯυ͍ͤͨ͞ w δΣωϦΫεͰ͍͍ײ͡ʹ w όϦσʔγϣϯ͢Δ044ϥΠϒϥϦ͋Δ͕ w ϥΠϒϥϦಋೖ͢Δ΄ͲͰͳ͍͠ w 3Y4XJGUʹରԠͯ͠ͳ͍͠ (FOFSJDͳ1SPUPDPMͰ 3Y4XJGUʹରԠͨ͠7BMJEBUPSΛ࣮͠Α͏
Πϝʔδ Ϣʔβͷೖྗͨ͠จࣈྻ͕ ༗ޮͳͰ͋Ε ૹ৴ϘλϯΛԡͤΔΑ͏ʹ͢Δ
7BMJEBUPSϓϩτίϧ ValueTypeɿόϦσʔγϣϯ͢Δͷܕ ErrorType ɿෆਖ਼ͳͷ߹ͷΤϥʔ validate() ɿόϦσʔγϣϯ݁ՌΛฦ͢
7BMJEBUJPO3FTVMU όϦσʔγϣϯͷਖ਼ޡΛද͢FOVN
7BMJEBUPSͷ࣮ྫ Ϣʔβ໊ͷೖྗཝΛఆͯ͠ ΤϥʔΛఆٛ͢Δ όϦσʔγϣϯͷϩδοΫΛॻ͘ 4USJOH Λೖྗʹ͢Δ
7BMJEBUPSͷ༻ྫ ୯ମͰಈ͘Α͏ʹͳͬͨ ͜ΕΛ3Y4XJGUʹରԠͤ͞Δ
3Y4XJGUͷ0CTFSWBCMF5ZQFʹ WBMJEBUFΦϖϨʔλΛੜ͢ Ҿʹ7BMJEBUPSΛͯ͠ɺ ετϦʔϜʹྲྀΕ͖ͯͨΛόϦσʔγϣϯ͠ɺ ݁ՌΛ7BMJEBUJPO3FTVMUܕͰฦ͢ɻ
ͬͯΈΔ όϦσʔγϣϯʹҾ͔͔ͬͬͨΒˠΤϥʔ༰Λදࣔ ༗ޮͳͰ͋Εˠ4VCNJUϘλϯ͕ԡͤΔΑ͏ʹͳΔ
None
·ͱΊ w όϦσʔγϣϯ͢ΔϓϩτίϧΛఆٛ w Ϣχοτςετ͕ॻ͖͍͢ w 3Y4XJGUʹόϦσʔγϣϯͷΦϖϨʔλΛੜ͢ w γϯϓϧͳهड़Ͱݟ௨͠ͷΑ͍ίʔυʹͳΔ w
δΣωϦΫεͷษڧʹͳͬͨ w αϯϓϧίʔυ w IUUQTHJUIVCDPNZVUPZB[BLJ3Y7BMJEBUJPO4BNQMF
5IBOLT