https://youtu.be/X6_xWpQihFw
Lezione teorica sulla libreria Rx, essenziale nello sviluppo di applicazioni reattive.
Sommario:
- Reactive programming
- Reactive eXtension (Rx)
- Observable, Observer e Subject
- Operatori
- Scheduler
- Quando usarla
- Conslusioni
Spero che abbiate trovato interessante l'argomento, se avete domande o commenti da fare sarò felice di rispondervi.
🔔 Non dimenticate di iscrivervi al canale
👍 Mettere mi piace se vi è piuaciuto il video,
🌐 e se potete condividete
💪Il vostro supporto è fondamentale
Ci vediamo al prossimo video
Grazie!
#ReactiveX
#ReactiveExtension
#Rx
#ReactiveProgramming
#ProgrammazioneReattiva
#Observable
#Observer
#LucaEvaroni
#DeVLearninG
Credits:
- Template PPT by Slidesgo
Lo Spring Framework viene ancora una volta incontro agli sviluppatori Java semplificandone la vita, questa volta vedremo come implementare facilmente uno strato servizi stateless da rendere disponibile remotamente nei diversi formati fruibili dalle diverse tecnologie client RIA, introducendo i concetti di Exporter e Proxy di Spring Remoting. Tutto questo tramite pura configurazione, via XML o annotation a seconda dei gusti, e con un esempio specifico in Flex con Spring BlazeDS Integration.
Presentazione alla Google Dev Fest Mediterranean 2016 di Catania con presentazione sulle metodologie di utilizzo di microservices e sui sistemi per monitorare le infrastrutture
La ragione principale per cui le aziende decidono di non adottare il DevOps per il database è di preservare la sicurezza del database stesso. Eppure, si tratta di una concezione errata: applicando il DevSecOps al DB, infatti, è possibile creare in ambienti strutturati le condizioni per un rilascio sicuro degli script del database, gestendo al meglio potenziali rischi di sicurezza. Segui il webinar per apprendere come includere il DB all’interno della tua strategia DevSecOps.
Sempre più di frequente sentiamo parlare di nuove librerie, framework o linguaggi. Tutte queste nuove tecnologie promettono miracoli ma il nostro tempo è una risorsa finita e non abbiamo il lusso di poter approfondire ogni novità.
Le PWA si basano su tecnologie che già usiamo tutti i giorni nello sviluppo WEB quindi, senza farci intimidire, possiamo approcciare qualcosa che effettivamente rivoluzioni il nostro lavoro e che possa farlo con il minimo sforzo da parte nostra.
Lo Spring Framework viene ancora una volta incontro agli sviluppatori Java semplificandone la vita, questa volta vedremo come implementare facilmente uno strato servizi stateless da rendere disponibile remotamente nei diversi formati fruibili dalle diverse tecnologie client RIA, introducendo i concetti di Exporter e Proxy di Spring Remoting. Tutto questo tramite pura configurazione, via XML o annotation a seconda dei gusti, e con un esempio specifico in Flex con Spring BlazeDS Integration.
Presentazione alla Google Dev Fest Mediterranean 2016 di Catania con presentazione sulle metodologie di utilizzo di microservices e sui sistemi per monitorare le infrastrutture
La ragione principale per cui le aziende decidono di non adottare il DevOps per il database è di preservare la sicurezza del database stesso. Eppure, si tratta di una concezione errata: applicando il DevSecOps al DB, infatti, è possibile creare in ambienti strutturati le condizioni per un rilascio sicuro degli script del database, gestendo al meglio potenziali rischi di sicurezza. Segui il webinar per apprendere come includere il DB all’interno della tua strategia DevSecOps.
Sempre più di frequente sentiamo parlare di nuove librerie, framework o linguaggi. Tutte queste nuove tecnologie promettono miracoli ma il nostro tempo è una risorsa finita e non abbiamo il lusso di poter approfondire ogni novità.
Le PWA si basano su tecnologie che già usiamo tutti i giorni nello sviluppo WEB quindi, senza farci intimidire, possiamo approcciare qualcosa che effettivamente rivoluzioni il nostro lavoro e che possa farlo con il minimo sforzo da parte nostra.
Workshop on TelegraphCQ:
Concept of Data Stram Management System.
TelegraphCQ: the DSMS developped at Berkley, internal architecture.
Differences between tradition database.
Adaptive QUery Processing using the new concept of Eddies like a routing operator.
Troubles about join Streams (with no statistical data) and Relations; and the two solution: STAIR and SteMs.
STAIR: a join operator that allow internal state changing using primite function visible to eddies.
SteMs: helf-join operator that keep homogeneous tuples, internal state is decision-indipendent.
Eddies Routing Policy implemented with the (Waldspurger & Weihl [1994]) Lottery Scheduling.
I risultati dell'applicazione del modello sono pubblicati all'interno di un moderno sistema informativo Web-based, che integra una SDI (Spatial Data Infrastructure) e architetture avanzate client/server. Sarà presentato tale sistema che mira al potenziamento degli strumenti di gestione ambientale e alla promozione di approcci innovativi per il settore, che consentano di colmare le attuali lacune dei sistemi di osservazione e rappresentazione dei dati.
Rich client application: MVC4 + MVVM = Knockout.jsGiorgio Di Nardo
La sempre maggiore diffusione di device diversificati (PC, Notebook, Tablet, Smartphone, ecc.) su piattaforme diverse, rilancia l'utilizzo delle Web Application come strumento per raggiungere il maggior numero di potenziali clienti con il minimo sforzo. Le capacità avanzate dei nuovi device e le ultime tecnologie ci consentono però di evolvere il concetto classico di applicazione Web in una declinazione più veloce, più responsiva, più accattivante: vediamo come.
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015Codemotion
Codemotion Rome 2015 - Costruiamo con Spring Boot una applicazione Java EE con transazioni multiple JDBC-JMS utilizzando H2 e HornetQ (embedded in memory), il supporto di autoconfiguration JAX-RS (Jersey), le annotazioni JSR 250 per i lifecycle hooks, e le annotazioni JSR 330 utilizzabili per AS proprietari e per la portabilità in container di dependency injection come Spring. Per finire distribuiremo su Undertow embedded HTTTP server, su un AS standalone (Apache TomEE) e come PAAS su Cloud Foundry.
"Sistemi managed in alta affidabilità e in open source" by Andrea Di MarcoThinkOpen
13/02/2018
Il mondo del cloud computing: point of failure, sia a livello architetturale che fisico, dei servizi oggi presenti sul mercato, ma anche nuove possibili soluzioni per l'alta affidabilità.
Open Source Day 2015 - DBaaS con Docker: un caso di studioPar-Tec S.p.A.
Il TechAdvisor Michelangelo Uberti spiega come realizzare un servizio di Database-as-a-Service basato su MySQL e Docker.
I punti trattati durante la presentazione sono:
- DB-as-a-Service: la semplicità del concept
- I possibili approcci
- Architettura di alto livello
- Focus sul Management Agent
- Orchestration at work
- Da cgroups a Docker
- Le sfide principali
- Quale futuro?
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/dbaas-con-docker-un-caso-di-studio
Workshop on TelegraphCQ:
Concept of Data Stram Management System.
TelegraphCQ: the DSMS developped at Berkley, internal architecture.
Differences between tradition database.
Adaptive QUery Processing using the new concept of Eddies like a routing operator.
Troubles about join Streams (with no statistical data) and Relations; and the two solution: STAIR and SteMs.
STAIR: a join operator that allow internal state changing using primite function visible to eddies.
SteMs: helf-join operator that keep homogeneous tuples, internal state is decision-indipendent.
Eddies Routing Policy implemented with the (Waldspurger & Weihl [1994]) Lottery Scheduling.
I risultati dell'applicazione del modello sono pubblicati all'interno di un moderno sistema informativo Web-based, che integra una SDI (Spatial Data Infrastructure) e architetture avanzate client/server. Sarà presentato tale sistema che mira al potenziamento degli strumenti di gestione ambientale e alla promozione di approcci innovativi per il settore, che consentano di colmare le attuali lacune dei sistemi di osservazione e rappresentazione dei dati.
Rich client application: MVC4 + MVVM = Knockout.jsGiorgio Di Nardo
La sempre maggiore diffusione di device diversificati (PC, Notebook, Tablet, Smartphone, ecc.) su piattaforme diverse, rilancia l'utilizzo delle Web Application come strumento per raggiungere il maggior numero di potenziali clienti con il minimo sforzo. Le capacità avanzate dei nuovi device e le ultime tecnologie ci consentono però di evolvere il concetto classico di applicazione Web in una declinazione più veloce, più responsiva, più accattivante: vediamo come.
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015Codemotion
Codemotion Rome 2015 - Costruiamo con Spring Boot una applicazione Java EE con transazioni multiple JDBC-JMS utilizzando H2 e HornetQ (embedded in memory), il supporto di autoconfiguration JAX-RS (Jersey), le annotazioni JSR 250 per i lifecycle hooks, e le annotazioni JSR 330 utilizzabili per AS proprietari e per la portabilità in container di dependency injection come Spring. Per finire distribuiremo su Undertow embedded HTTTP server, su un AS standalone (Apache TomEE) e come PAAS su Cloud Foundry.
"Sistemi managed in alta affidabilità e in open source" by Andrea Di MarcoThinkOpen
13/02/2018
Il mondo del cloud computing: point of failure, sia a livello architetturale che fisico, dei servizi oggi presenti sul mercato, ma anche nuove possibili soluzioni per l'alta affidabilità.
Open Source Day 2015 - DBaaS con Docker: un caso di studioPar-Tec S.p.A.
Il TechAdvisor Michelangelo Uberti spiega come realizzare un servizio di Database-as-a-Service basato su MySQL e Docker.
I punti trattati durante la presentazione sono:
- DB-as-a-Service: la semplicità del concept
- I possibili approcci
- Architettura di alto livello
- Focus sul Management Agent
- Orchestration at work
- Da cgroups a Docker
- Le sfide principali
- Quale futuro?
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/dbaas-con-docker-un-caso-di-studio
4. REACTIVE PROGRAMMING
«La Reactive Programming è un paradigma di
programmazione dichiarativa basata su
streams di dati asincroni e sulla propagazione
del cambiamento»
Esempio:
a = b + c
Programmazione standard:
salvo ulteriori assegnazioni il valore di «a»
non cambia anche se cambiano «b» e «c»
Programmazione reattiva:
Il valore di «a» viene aggiornato ad ogni
cambiamento di «b» o «c»
5. REACTIVE PROGRAMMING
Le applicazioni sviluppate con questa metologia sono
fortemente orientate ad un approoccio event-driven e
dichiarativo piuttosto che imperativo
7. REACTIVE EXTENSION (RX)
Cosa contiene Rx?
Un insieme di tipi che rappresentano flussi di dati asincroni
Un insieme di operatori che consentono di effettuare query sui flussi (streams)
Un insieme di tipi utilizzabili per parametrizzare e gestire la concorrenza
13. OBSERVABLE, OBSERVER E SUBJECT
Tipi di Observable
Tipologie di Observable
Hot
L’emissione degli eventi
inizia alla creazione
dell’Observable
Cold
L’Observer attende la prima
sottoscrizione
14. OBSERVABLE, OBSERVER E SUBJECT
Subject
4 principali Subject da conoscere
AsyncSubject
BehaviorSubject
PublishSubject
ReplaySubject
22. OPERATORI
Introduzione
Il vero punto di forza di Rx
sono gli operatori
Consentono di:
• Trasformare
• Combinare
• Manipolare
La maggior parte degli operatori
lavora su Observable e restituisce
Observable.
Applicazione degli operatori in
cascata.
Operator Observable
Observable
Operator Observable
Operator Observable
23. OPERATORI
Categorie
Gli operatori si possono suddividere in 8 categorie
Creazione
Trasformazione
Filtro
Combinazione
Utilità
Manipolazione degli errori
Condizionali
Matematici e di aggregazione
43. SCHEDULER
Rx di default è single-thread
Per poter utilizzare processazioni multi-thread
occorre utilizzare gli Scheduler
Di default l’esecuzione dei metodi definiti
dall’Observer viene eseguita sullo stesso thread
delle chimate OnNext - OnError - OnCompleted
44. SCHEDULER
Operatori per gestire la concorrenza durante:
L’invocazione della
sottoscrizione
SubscribeOn()
L’osservazione delle
notifiche
ObserveOn()
45. SCHEDULER
Ogni implementazione della libreria Rx ha un set di Scheduler
Eseguire operazioni su piu thread paralleli
Eseguire operazioni immediatamente sul thread corrente
Eseguire operazioni al piu presto possibile sul thread corrente
Eseguire operazioni con un determinato delay
Scheduler per lo Unit Testing
46. SCHEDULER
Introduzione di race-condition, deadlock e corrupted-state.
Rx mitiga molto i problemi legati alla concorrenza.
Evitare operazioni bloccanti come First, Last e Single.
Non usiamola se non serve, cerchiamo di mantenere il codice il piu semplice
e pulito possibile.
L’introduzione della concorrenza aumenta la complessità
47. QUANDO USARLA
Quando usarla
Eventi della user interface
Eventi dell’infrastruttura
Eventi del dominio dell’applicazione
Eventi scaturiti da un message bus o WebSockets
Eventi generati da social media, rss feed
Eventi generati dal completamento di una chiamata Http
Eventi generati da eventuali sensori quali gps e accelerometro
48. CONCLUSIONI
Rx è una libreria molto potente e versatile,
puo essere fondamentale in alcune situazioni con flussi di dati da gestire.
Disponibile in tantissimi linguaggi tra cui
C# - Rx.Net
Java - RxJava
Javascript - RxJS
C++ - RxCpp
Swift - RxSwift
Kotlin - RxKotlin
....
http://reactivex.io/languages.html
Non è l’unica libreria, ma è sicuramente la piu diffusa ;)
49. GRAZIE!
Non dimenticarti
di iscriverti al canale YouTube
DeVLearninG
e mettere Mi Piace al video
Per noi è molto importante il tuo sostegno
Condividi se ti è piaciuto ;)
50. CREDITS
◂ Presentation template by Slidesgo
◂ Icons by Flaticon
◂ Infographics by Freepik
◂ Author introduction slide photo created by Freepik
◂ Text & Image slide photo created by Freepik.com
#01
879
0
#00
a6a
6
#1d
cdc
3
#f5
413
2
#ff7
c4e
#ffa
73b
#43
434
3