次世代の非同期処理はこうやって使い分ける!
by
yutaabe200
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
࣍ ੈ ͷ ඇ ಉ ظ ॲ ཧ ͜ ͏ ͬͯ ͍ ͚ Δ ʂ 5 3 : 4 8 * ' 5 1 3 & 5" - , 4 : 6 5" " # &
Slide 2
Slide 2 text
2 ࣗݾհ Ѩ෦༏ଠ !ZVUBBCF $6/&-803,$0 -5%JO/**("5" J04"OESPJE%FWFMPQFSʜͷͣ 3FBDU&4Yɾ(PMBOH 1)1FS,BJHJͰ-5͠·͢
Slide 3
Slide 3 text
3 ࣍ "HFOEB 3FBDUJWF&YUFOTJPOTԿ͕͍͍ͷ͔ ͳͥΒBTZODBXBJUΛཉ͕͠Δͷ͔ 1SPNJTFͳͷ͔4USFBNͳͷ͔
Slide 4
Slide 4 text
3FBDUJWF&YUFOTJPOTԿ͕͍͍ͷ͔ What is ReactiveExtensions good for …
Slide 5
Slide 5 text
5 Կͬ ͯɺͭ·Γʜ
Slide 6
Slide 6 text
6 Β࣌Λࢧ͢Δ͜ͱʹޭͨ͠ɻ
Slide 7
Slide 7 text
7 ΛखʹೖΕͨʁ
Slide 8
Slide 8 text
8
Slide 9
Slide 9 text
9 Β࣌Λࢧ͢Δ͜ͱΛޭͨ͠ɻ
Slide 10
Slide 10 text
10 Β࣌Λࢧ͢Δ͜ͱΛޭͨ͠ɻ ΠϕϯτͷྲྀΕΛ্࣌ؒ࣠Ͱ ετϦʔϜͱͯ͠ѻ͍͔ͬͨ͢ɻ
Slide 11
Slide 11 text
11 ࢹՄೳ 0CTFSWBCMF ͳͷΛ࡞Γʜ ΠϕϯτΛߪಡ 4VCTDSJCF ͢Δͱʜ ޭɾࣦഊ PO/FYU PSPO&SSPS Λڭ͑ͯ͘Εͨ 0CTFSWBCMF ؍ର 0CTFSWFS ؍͢Δ 4VCTDSJCF
Slide 12
Slide 12 text
12 ΠϕϯτͷྲྀΕΛ্࣌ؒ࣠Ͱ ετϦʔϜͱͯ͠ѻ͍͔ͬͨ͢ɻ ඇಉظॲཧ͕؆୯ʹѻ͍͘͢ͳͬͨ
Slide 13
Slide 13 text
13 ΠϕϯτͷྲྀΕΛ্࣌ؒ࣠Ͱ ετϦʔϜͱͯ͠ѻ͍͔ͬͨ͢ɻ ඇಉظॲཧ͕؆୯ʹѻ͍͘͢ͳͬͨ
Slide 14
Slide 14 text
14
Slide 15
Slide 15 text
ͳͥΒBTZODBXBJUΛཉ͕͠Δͷ͔ Why do we want “async/await”?
Slide 16
Slide 16 text
16 ΠϕϯτͷྲྀΕΛ্࣌ؒ࣠Ͱ ετϦʔϜͱͯ͠ѻ͍͔ͬͨ͢ɻ ඇಉظॲཧ͕؆୯ʹѻ͍͘͢ͳͬͨ
Slide 17
Slide 17 text
17 ΠϕϯτͷྲྀΕΛ্࣌ؒ࣠Ͱ ετϦʔϜͱͯ͠ѻ͍͔ͬͨ͢ɻ ඇಉظॲཧ͕؆୯ʹѻ͍͘͢ͳͬͨ
Slide 18
Slide 18 text
18 func fetchAdminUser(uid: String) { self.loginGateway .fetchAdminUser(uid: uid) .subscribe( onNext: { [weak self] adminUserEnitites in // do something }).disposed(by: self.disposeBag) } ͜ΕɺಡΉͷʹͲΕ͘Β͍͔͔Δʁ
Slide 19
Slide 19 text
19 func fetchAdminUser(uid: String) async { let entities = await self.loginGateway.fetchAdminUser(uid: uid) } ͜͏ͳΒͲ͏ʁ
Slide 20
Slide 20 text
20 func fetchAdminUser(uid: String) async { let entities = await self.loginGateway.fetchAdminUser(uid: uid) } ͜͏ͳΒͲ͏ʁ
Slide 21
Slide 21 text
21 func fetchAdminUser(uid: String) async { let entities = await self.loginGateway.fetchAdminUser(uid: uid) } ͜͏ͳΒͲ͏ʁ
Slide 22
Slide 22 text
22 3Y͕ඞཁʹͳΔγʔϯ ɾ6*Πϕϯτͷड͚औΓ ɾෳΠϕϯτͷετϦʔϜ͕ඞཁͳΠϕϯτ ɾσʔλঢ়ଶͷࢹ %BUB#JOEJOH ɾ୯७ͳ֎෦௨৴ͷSFRVFTUSFTQPOTF ୯ҰඇಉظΠϕϯτ
Slide 23
Slide 23 text
23 3Y͕ඞཁʹͳΔγʔϯ ɾ6*Πϕϯτͷड͚औΓ ɾෳΠϕϯτͷετϦʔϜ͕ඞཁͳΠϕϯτ ɾσʔλঢ়ଶͷࢹ %BUB#JOEJOH ɾ୯७ͳ֎෦௨৴ͷSFRVFTUSFTQPOTF ୯ҰඇಉظΠϕϯτ
Slide 24
Slide 24 text
24 3Y͕ඞཁʹͳΔγʔϯ ɾ6*Πϕϯτͷड͚औΓ ɾ୯७ͳ֎෦௨৴ͷSFRVFTUSFTQPOTF ୯ҰඇಉظΠϕϯτ ɾෳΠϕϯτͷετϦʔϜ͕ඞཁͳΠϕϯτ ɾσʔλঢ়ଶͷࢹ %BUB#JOEJOH ͜ΕΛͬͱ͍ܰͨ͘͠ʂ
Slide 25
Slide 25 text
25 3Y͕ඞཁʹͳΔγʔϯ ɾ6*Πϕϯτͷड͚औΓ ɾ୯७ͳ֎෦௨৴ͷSFRVFTUSFTQPOTF ୯ҰඇಉظΠϕϯτ ɾෳΠϕϯτͷετϦʔϜ͕ඞཁͳΠϕϯτ ɾσʔλঢ়ଶͷࢹ %BUB#JOEJOH ͜ΕΛͬͱ͍ܰͨ͘͠ʂ ୯७ͳΠϕϯτʹ·Ͱ3Y͍ͨ͘ͳ͍ʂ
Slide 26
Slide 26 text
1SPNJTFͳͷ͔4USFBNͳͷ͔ Do you want “Promise” or “Stream”?
Slide 27
Slide 27 text
27 1SPNJTFͱ ɾʮ୯ҰͷඇಉظΠϕϯτʯΛѻ͏ ɾBTZODGVODUJPOͷΓ ɾBTZODGVODUJPO͕SFUVSOͨ͠ΒQSPNJTF͕SFTPMWF͢Δ ɾBTZODGVODUJPO͕UISPXͨ͠ΒQSPNJTF͕SFKFDU͢Δ ɾBXBJUQSPNJTFͷ݁ՌΛͪɺฦͬͨΒ࠶։͢Δ Ұൠతͳ
Slide 28
Slide 28 text
28 1SPNJTFͰेͳγʔϯ ɾ୯७ͳ"1*ίʔϧ ɾը૾ɾಈըͳͲૢ࡞ͷॏ͍ॲཧ ɾ࣌ݶര ɾෳࡶͳΤϥʔϋϯυϦϯά͕ෆཁ UISPXTOPOUISPXJOHͰ͍͚Ε͍͍ ɾฒྻॲཧෆཁ࣌ 'VUVSFͰ͍͚Ε͍͍
Slide 29
Slide 29 text
29 ɾ୯ҰඇಉظΠϕϯτ1SPNJTFͰྑ͔ͬͨ ɾෳͷඇಉظॲཧ ΠϕϯτετϦʔϜ 3Yͷຊ
Slide 30
Slide 30 text
30 ɾ୯ҰඇಉظΠϕϯτ1SPNJTFͰྑ͔ͬͨ ɾෳͷඇಉظॲཧ ΠϕϯτετϦʔϜ 3Yͷຊ ཉ͍͠ͷʮ1SPNJTFͳͷ͔4USFBNͳͷ͔ʯ
Slide 31
Slide 31 text
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠