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
Reactive Programming with RxPy
Slide 2
Slide 2 text
$Whoami $ @valerybriz $ Pythonista $ Telecomm Engineer $ Co-Founder and Leader of Python Guatemala $ Systems Development Specialist at Skyguard GPS
Slide 3
Slide 3 text
What Does Reactive Programming Really Means?
Slide 4
Slide 4 text
Why Reactive Programming?
Slide 5
Slide 5 text
Why Reactive Programming?
Slide 6
Slide 6 text
Why Reactive Programming?
Slide 7
Slide 7 text
How Does Reactive Programming Works?
Slide 8
Slide 8 text
Observable and Observer onNext() onComplete() onError()
Slide 9
Slide 9 text
Observables source = Observable.from_list([1,2,3,4,5,6])
Slide 10
Slide 10 text
Observers source.subscribe(lambda value:print("Received {0}".format(value)))
Slide 11
Slide 11 text
Subjects mySubject = subject.on_next([1,2,3,4,5,6]) mySubject.subscribe(send_response, on_error)
Slide 12
Slide 12 text
Data Operators in Reactive Programming • Creating Observables • Transforming Observables • Filtering Observables • Combining Observables • Error Handling Operators • Observable Utility Operators • Conditional and Boolean Operators • Mathematical and Aggregate Operators • Connectable Observable Operators
Slide 13
Slide 13 text
Observable.just(a,b,c,d)
Slide 14
Slide 14 text
Observable.filter( lambda text: not text or len(text) > 2 )
Slide 15
Slide 15 text
Subject.flat_map( lambda value: Observable.from_future( self.get_value(value) ) )
Slide 16
Slide 16 text
Subject.do_action( lambda x: send_response('clear') )
Slide 17
Slide 17 text
user_input.combine_latest( interval, lambda input_value, i:input_value )
Slide 18
Slide 18 text
Advantages of Reactive Programming •Asynchronous •Error Handling •Multiple Subscribers •Functional programming
Slide 19
Slide 19 text
Trying it out self.subject = Subject() user_input = self.subject.throttle_last( 1000 ).start_with("").filter( lambda text: not text or len(text) > 2 )
Slide 20
Slide 20 text
Trying it out self.combine_latest_sbs = user_input.combine_latest( interval, lambda input_val, i: input_val ).do_action( lambda x: send_response('clear') ).flat_map( self.get_data ).subscribe(send_response, on_error)
Slide 21
Slide 21 text
Conclusions
Slide 22
Slide 22 text
No content