Créateur d'applications mobiles - Ripple Motion

GCD and Continuation passing style APIs. TECH TALK #13 - 08.02.2017. 7. ‣ improvement on the caller site / callback site correlation. ‣ coordination is hard.
1MB taille 7 téléchargements 279 vues
Créateur d’applications mobiles

TECH TALK

GRATUITS & OUVERTS AU PUBLIC

Tech talk sous forme de courtes formations le mercredi de 17h à 18h ! N’hésitez pas à nous contacter afin de participer aux prochaines sessions au sein de nos locaux !

TECH TALK #13 - 08.02.2017

SCHEDULE https://goo.gl/Rp92xO OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

08/02/2017 #15 Promises iOS + Android 15/02/2017 #16 Android TableView vs RecyclerView 22/02/2017 #17 iOS Rest Primer 01/03/2017 #18 Django + Celery

3

TECH TALK #13 - 08.02.2017

PROMISES IOS + ANDROID

TECH TALK #13 - 08.02.2017

OLIVIER TABONE CO-FONDATEUR DIRECTEUR

A BRIEF HISTORY OF ASYNC CODE HANDLING

TECH TALK #13 - 08.02.2017

OBJECTIVE-C ~ 1980 Delegation Pattern

OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

‣ Objects have to carry state to coordinate multiple async calls

‣ caller is disconnected from result / error

6

TECH TALK #13 - 08.02.2017

OBJECTIVE-C ~ 2010

GCD and Continuation passing style APIs OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

‣ improvement on the caller site / callback site correlation

‣ coordination is hard ‣ code tends to suffer from callback hell 7

TECH TALK #13 - 08.02.2017

NODE JS ~ 2016 Callback based apis

OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

8

TECH TALK #13 - 08.02.2017

NODE JS ~ 2016 Callback hell

OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

9

TECH TALK #13 - 08.02.2017

OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

NODE JS ~ 2016 Callback hell COCOA

10

TECH TALK #13 - 08.02.2017

HELLO PROMISES OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

a Promise holds a reference to a future completion of a task. these references can be combined to do a lot of interesting stuff.

11

TECH TALK #13 - 08.02.2017

PROMISES

Pipe of async operations RESOLVED OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

RESOLVED

RESOLVED

PENDING

PENDING

CANCELLED

CANCELLED REJECTED

PENDING

CANCELLED REJECTED

REJECTED

12

TECH TALK #13 - 08.02.2017

PROMISES

Pipe of async operations OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

‣ fetch | parse | filter or what ?

‣ state is … ‣ output is a result or an error or nothing if I forgot something 13

TECH TALK #13 - 08.02.2017

PROMISES Chaining

OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

‣ return result of any type ‣ return promise of any type ‣ throw an error 14

TECH TALK #13 - 08.02.2017

PROMISES Error Handling

OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

‣ Think try / catch / finally

15

TECH TALK #13 - 08.02.2017

PROMISES Error Handling with chained promises OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

‣ Think try / catch / finally

16

TECH TALK #13 - 08.02.2017

PROMISES Cancellation OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

‣ error handler not called ‣ always is always called 😎 17

TECH TALK #13 - 08.02.2017

PROMISES PATTERNS CALLBACK OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

18

TECH TALK #13 - 08.02.2017

PROMISES PATTERNS CALLBACK improved OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

19

TECH TALK #13 - 08.02.2017

PROMISES PATTERNS Transform before callback OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

20

TECH TALK #13 - 08.02.2017

PROMISES PATTERNS

Fallback to local data on remote fetch failure OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

21

TECH TALK #13 - 08.02.2017

PROMISES PATTERNS coalesce async calls

OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

22

TECH TALK #13 - 08.02.2017

PROMISES PATTERNS

Coordinate multiple async API calls OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

23

TECH TALK #13 - 08.02.2017

PROMISES PATTERNS

Coordinate multiple async API calls (better) OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

24

TECH TALK #13 - 08.02.2017

PROMISES PATTERNS Graph of Async calls

OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

DO A

DO B

DO C

DO D

25

TECH TALK #13 - 08.02.2017

PROMISES ANTI-PATTERNS Not a silver bullet

OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE

‣ Stream of events - use RX, Delegation, Notifications ‣ Synchronous Work - use Threading ‣ Message Passing - use GCD

26

TECH TALK ANIMÉ PAR

OLIVIER TABONE CO-FONDATEUR DIRECTEUR [email protected] 06 83 01 05 76

MERCI DE VOTRE PARTICIPATION !