Java Advanced. Programarea reactiva, asincrona si functionala

Java Advanced. Programarea reactiva, asincrona si functionala

Acest training discuta despre abordarea functionala, asincrona si reactiva in dezvoltarea de software cu Java. Printre subiectele pe care le acoperim se afla NIO2, CompletableFurure, RxJava, Reactor, R2DBC, SSE, Spring Data reactive, WebClient, reactive WebSocket si RSocket.
Cod: JVA-074
Durata: 36 ore

Descriere

In cadrul cursului nostru ne concentram pe abordarea reactiva si functionala in ceea ce priveste programarea cu Java (pentru a imbunatatii performanta in backend). Trainingul include tematici legate de non-blocking input/output NIO2, asynchronous promises CompletableFuture, reactive programming libraries RxJava si Reactor, async DB access interface R2DBC si altele. Discutam si despre streaming protocol SSE, reactive Spring Data repositories, WebClient, WebSocket and RSocket protocols.

Subiecte curs

Functional Java
  • Interfete functionale
  • Method references
  • Data streams
  • Map/filter/reduce
  • Aggregation functions
  • Reducerea procesarii paralele si secventiale
  • Consumers chaining
  • Stream collectors

Executor framework. Fork Join pool
  • Folosirea executors
  • Future interface
  • Utilizarea Callable interface
  • Anularea sarcinilor
  • ForkJoin framework
  • Crearea de ForkJoin pool si sarcini
  • Parallel Streams in Java 8+
  • ForkJoin vs. Parallel streams vs. Sequental benchmarks

Non-blocking Input/Output
  • Diferente majore intre Java NIO si IO
  • NIO Channel vs. Stream
  • Stream Oriented vs. Buffer Oriented
  • Blocking vs. Non-blocking IO
  • Java NIO Buffer
  • Java NIO Channel
  • Direct buffer
  • Mapped file buffer
  • Java NIO Selector
  • Asynchronous I/O with NIO
  • File lock
  • Production-ready NIO server
  • Netty server architecture

Asynchronous Java (Completable Future)
  • Probleme legate de synchronous code
  • Arhitectura NodeJS
  • Procesarea paralela a data flow
  • Metode CompletableFuture sync si async
  • Metode combining, composing, si quicker win
  • Handling exceptions in CompletableFuture
  • Cancellation of CompletableFuture
  • Utilizarea CompletableFuture pentru Data Flow

Reactive programming
  • Ce este reactivitatea?
  • Elemente de baza RxJava: Observer si Observable
  • Java 9 Reactive Streams
  • Side effect methods
  • Error handling
  • Hot and cold observables
  • Shared and connectable observables
  • Disposing observables
  • Reactive operators (full catalog)
  • Subjects
  • RxJava concurrency (Schedulers)
  • Backpressure and flowables
  • Testing reactive streams

Project Reactor
  • Reactor Maven dependencies
  • Flux/Mono Reactor operators
  • Handling backpressure with Reactor
  • Reactor Schedulers
  • Parallel Flux
  • Wrapping a synchronous blocking calls
  • Testing with Reactor
  • Reactor processors

Spring WebFlux and practical reactive programming
  • Reactive access to DB
  • Reactive R2DBC drivers
  • Spring Data reactive repository
  • Pagination support
  • WebFlux: Functional-based controllers
  • Spring REST controllers returning reactive results (Mono/Flux)
  • Spring REST controllers returning SSE
  • WebClient: retrieving reactive data from the server
  • SSE si WebSocket protocols
  • Utilizarea WebSocket to pass/retrieve JSON data
  • Utilizarea WebSocket to pass/retrieve binary data
  • Protocolul RSocket
  • RSocket controller: server side
  • RSocket client cu JSON si binary data exchange
  • RSocket cu load balancing
  • RSocket cu weighted load balancing
  • Folosirea reactive streams cu message broker (RabbitMQ)
  • Spring Data MongoDB repository
  • Reactive benchmarks: R2DBC vs JDBC si WebFlux vs Web MVC
  • Architecture si Patterns ale reactive programming

Obiective

  • Oferim o introducere in programarea asincrona si reactiva
  • Exemple legate de modul in care sunt folosite programarea asincrona si reactiva

Public tinta

  • Programatori Java
  • Arhitecti software Java

Cerinte curs

  • Cunostinte bune de Java (cunostinte legate de Spring sunt utile)

Alege oras Online Pret
Inregistreaza-te pentru urmatorul curs.
+
Inregistrarea la urmatorul curs va asigura prioritatea pe lista de inscriere. Veti fi contactat pentru confirmarea inscrierii in momentul in care urmatorul curs este programat.
Online 3800 RON
Bucuresti 3800 RON
Cracovia 3800 RON
Wroclaw 3800 RON

Facturile pentru curs sunt emise in moneda locala. Toate preturile de mai sus pot fi supuse modificarilor in functie de locul unde se desfasoara trainingul si modul de livrare. Preturile pot fi supuse modificarilor si in perioada in care se programeaza. La preturile afisate se adauga TVA.

Alte cursuri care te-ar putea interesa:
JVA-030
12 ore
JVA-067
12 ore
+0+

Inscrie-te!

Prenume*
Nume*
Companie
Adresa email*
Alege oras
Telefon
Observatii
Mai ai intrebari?
Contacteaza-ne.
Thank you.
Your request has been received.