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.2k
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
830
Firebase Remote Config ベストプラクティス
yutoyazaki
0
800
Other Decks in Programming
See All in Programming
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
5
390
法律の脱レガシーに学ぶフロントエンド刷新
oguemon
5
740
『品質』という言葉が嫌いな理由
korimu
0
170
Bedrock Agentsレスポンス解析によるAgentのOps
licux
3
880
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
12
4.4k
WebDriver BiDiとは何なのか
yotahada3
1
150
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
810
『テスト書いた方が開発が早いじゃん』を解き明かす #phpcon_nagoya
o0h
PRO
3
1.6k
SwiftUI Viewの責務分離
elmetal
PRO
2
250
チームリードになって変わったこと
isaka1022
0
210
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
250
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
40
15k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
A designer walks into a library…
pauljervisheath
205
24k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
560
Rails Girls Zürich Keynote
gr2m
94
13k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
Side Projects
sachag
452
42k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
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