SlideShare a Scribd company logo
1 of 157
Download to read offline
F U N C T I O N A L - R E A C T I V E
@ S V E N R U P P E R T
5
S T O R Y A N D P H I L O S O P H Y
Software is eating the world and what most of us see of it is the user interface. The user
interface has become the key component of how the users experience the business
behind it. Competition is lost or won due to user experience. Simplicity is king and the
users get frustrated by anything ugly, slow or not working on the device they happen to
use at the time. We at Vaadin fight for simplicity and invite everyone to join this fight.
Together we want to build a user interface that puts a smile on the user’s face.
Vaadin is the technology that empowers developers to build the best web-apps for
business purposes. Our priority over everything else is developer productivity because
we believe that by simplifying the developer experience and saving the developer’s
time, they are best able to focus on building great user interfaces.
Our brand is what we want everyone to think about us. When everyone - both us and
the people around us - have a consistent understanding of what Vaadin is and what we
stand for, it enables that image to spread and amplify. This book defines what we want
that image to be. It defines what the Vaadin brand is.
I hope that You are as excited and proud of living and breathing the Vaadin brand as
I am. You are the one who is shaping what everyone thinks about Vaadin - using this
brand as a tool and a guideline every day.
Let’s fight for simplicity for both the users and the developers!
Joonas Lehtinen
Founder & CEO
Vaadin
I N T R O D U C T I O N
W I T H C O R E J AVA 8 - 11 A N D B E Y O N D
S V E N R U P P E R T 

Developer Advocate @ Vaadin
5
C O D I N G J AVA S I N C E 1 9 9 6
C O N S U LT I N G W O R L D W I D E
Public Sector: Military / Government
Private Sector: Automotive / Aerospace / SMB /
NonProfit / NonGov: World Bank / UN / YPARD / CGIAR
D I S T R I B U T E D S Y S T E M S S I N C E 2 0 0 2
J O I N E D VA A D I N 2 0 1 7
I N T R O
D I F F E R E N C E S B E T W E E N O O A N D F P I N J AVA
4
@SvenRuppertJava8 - Optional<T>
the border between OO and FP in Java is not 100% clear.
@SvenRuppert
S I N C E J AVA 8
Functional Interfaces - basics
6
@SvenRuppertJava8 - Functional Interfaces
7
@SvenRuppertJava8 - Functional Interfaces
8
@SvenRuppertJava8 - Functional Interfaces
9
@SvenRuppertJava8 - Functional Interfaces
10
@SvenRuppertJava9 - Functional Interfaces
Java9 - JEP213
@SvenRuppert
E X E R C I S E S
S I N C E J AVA 8
Functional Interfaces - basics
@SvenRuppert
S I N C E J AVA 8
Optional<T>
Optional<T> @SvenRuppert
Optional<T> @SvenRuppert
Optional<T> @SvenRuppert
Optional<T> - since JDK10 @SvenRuppert
@SvenRuppert
E X E R C I S E S
S I N C E J AVA 8
Optional<T>
@SvenRuppert
S I N C E J AVA 8
Result<T>
Optional<T> @SvenRuppert
Not symmetric
Not async - blocking only
Not functional enough
Declared final - no inheritance Having ValueTypes in mind
We need something
Result<T> @SvenRuppert
Must be easy to transform Optional <-> Result
Should work as an Drop-In-Replacement
Should connect to the Reactive-World
Should be symmetric
Must fit functional style / oo style
Result<T> @SvenRuppert
Transform from and to an Optional
pos. and neg. available
@SvenRuppert
Symmetric
Handle both ways
Result<T>
@SvenRuppert
Handle both ways
Async if needed
Result<T>
@SvenRuppert
Combine with Value and Transformation
Async if needed
Result<T>
@SvenRuppert
Combine with Value / Function
Async if needed
Combine with a function
Result<T>
@SvenRuppert
E X E R C I S E S
S I N C E J AVA 8
Result<T>
@SvenRuppert
S I N C E J AVA 8
Exceptions
Exceptions @SvenRuppert
Exceptions @SvenRuppert
Exceptions @SvenRuppert
Exceptions @SvenRuppert
JDK9
Exceptions @SvenRuppert
Exceptions @SvenRuppert
Exceptions @SvenRuppert
Exceptions @SvenRuppert
Exceptions @SvenRuppert
Exceptions @SvenRuppert
Exceptions @SvenRuppert
different exceptions
@SvenRuppert
E X E R C I S E S
S I N C E J AVA 8
Exceptions
@SvenRuppert
H O W T O U S E F U N C T I O N S …
Functions - Basics
Functions - Java8
41
@SvenRuppert
a function is a transformation
input -> output
(input - type, input value) (output - type, output value)
Functions - Java8
42
@SvenRuppert
43
@SvenRuppertFunctions - Java8
44
@SvenRuppertFunctions - Java8
45
@SvenRuppertFunctions - Java8
46
@SvenRuppert
Compose is not so nice.. but
Functions - Java8
47
@SvenRuppert
Attention : make a semantic equal function !!
Functions - Java8
48
@SvenRuppertFunctions - Java8
How to get an instance of a function?
49
@SvenRuppertFunctions - Java8
50
@SvenRuppertFunctions - Java8
51
@SvenRuppertFunctions - Java8
Functions - Java8 - extract the logic !
52
@SvenRuppert
53
@SvenRuppertFunctions - Java8
54
@SvenRuppertFunctions - Java8
@SvenRuppert
E X E R C I S E S
H O W T O U S E F U N C T I O N S …
Functions - Basics
@SvenRuppert
G E N E R I C B A C K A N D F O R WA R D
Currying
Currying @SvenRuppert
@SvenRuppertCurrying
@SvenRuppertCurrying
@SvenRuppertCurrying
@SvenRuppert
E X E R C I S E S
G E N E R I C B A C K A N D F O R WA R D
Currying
@SvenRuppert
P U R E F U N C T I O N A L B E H AV I O R
Memoizing
Memoizing @SvenRuppert
Memoizing @SvenRuppert
Memoizing @SvenRuppert
Memoizing @SvenRuppert
Memoizing @SvenRuppert
Memoizing @SvenRuppert
Memoizing @SvenRuppert
Memoizing @SvenRuppert
Memoizing @SvenRuppert
Memoizing @SvenRuppert
Memoizing @SvenRuppert
@SvenRuppert
E X E R C I S E S
P U R E F U N C T I O N A L B E H AV I O R
Memoizing
@SvenRuppert
H O W T O D E C I D E ?
Case
Case @SvenRuppert
@SvenRuppertCase
@SvenRuppertCase
@SvenRuppertCase
@SvenRuppertCase
@SvenRuppert
E X E R C I S E S
H O W T O D E C I D E ?
Case
@SvenRuppert
H O W T O U S E , H O W T O B U I L D
Streams
Streams @SvenRuppert
Streams @SvenRuppert
A Stream is active after creation
want to define a Stream without starting it
maybe creating it interactively
we need a function !
Function<T, Stream<R>>
@SvenRuppert
E X E R C I S E S
H O W T O U S E , H O W T O B U I L D
Streams
Refactoring example
based on Java8
@SvenRuppert
86
@SvenRuppertJava8 - Functional Interfaces - Example
typical legacy implementation
87
@SvenRuppertJava8 - Functional Interfaces - Example
typical legacy implementation
88
@SvenRuppertJava8 - Functional Interfaces - Example
89
@SvenRuppertJava8 - Functional Interfaces - Example
90
@SvenRuppertJava8 - Functional Interfaces - Example
91
@SvenRuppertJava8 - Functional Interfaces - Example
92
@SvenRuppertJava8 - Functional Interfaces - Example
93
@SvenRuppertJava8 - Functional Interfaces - Example
Sourcecode is on github
Pattern in Java 8/9
how pattern will change…
@SvenRuppert
Virtual Proxy
94
@SvenRuppert
Virtual Proxy
95
@SvenRuppert
public class ServiceProxy implements Service {

private Service service = new ServiceImpl();

public String work(String txt) { return service.work(txt); }

}
What could we
change now ? Virtual Proxy:
create the Delegator later
public class VirtualService implements Service {

private Service service = null;

public String work(String txt) {

if(service == null) { service = new ServiceImpl(); }

return service.work(txt);

}

}
Virtual Proxy
96
@SvenRuppert
public class VirtualService implements Service {

private Service service = null;

public String work(String txt) {

if(service == null) { service = new ServiceImpl(); }


return service.work(txt);

}

}
This is NOT ThreadSafe
fixed decision for
an implementation
how to combine it with
a FactoryPattern ?
Virtual Proxy
97
@SvenRuppert
if(service == null) { service = new ServiceImpl(); }

public interface ServiceFactory {

Service createInstance();

}
public interface ServiceStrategyFactory {

Service realSubject(ServiceFactory factory);

}
Virtual Proxy - Not - ThreadSafe
98
@SvenRuppert
if(service == null) { service = new ServiceImpl(); }

public class ServiceStrategyFactoryImpl implements ServiceStrategyFactory {

Service realSubject;

public Service realSubject(final ServiceFactory factory) {

if (realSubject == null) {

realSubject = factory.createInstance();

}

return realSubject;

}

}
private ServiceFactory serviceFactory = ServiceImpl::new;
Virtual Proxy - Not - ThreadSafe
99
@SvenRuppert
if(service == null) { service = new ServiceImpl(); }

public class ServiceProxy implements Service {
private ServiceFactory serviceFactory = ServiceImpl::new;
private ServiceStrategyFactory strategyFactory = new ServiceStrategyFactoryImpl();
public String work(String txt) {
return strategyFactory .realSubject(serviceFactory).work(txt);
}

}
Virtual Proxy - Show some code….
100
@SvenRuppert
Virtual Proxy - Show some code….
101
@SvenRuppert
Virtual Proxy - Show some code….
102
@SvenRuppert
Virtual Proxy - Show some code….
103
@SvenRuppert
Virtual Proxy - Show some code….
104
@SvenRuppert
Virtual Proxy - Show some code….
105
@SvenRuppert
Virtual Proxy - Show some code….
106
@SvenRuppert
Virtual Proxy - Show some code….
107
@SvenRuppert
Virtual Proxy - Show some code….
108
@SvenRuppert
Virtual Proxy - Show some code….
109
@SvenRuppert
Decorator - pre Java8
110
@SvenRuppert
Decorator - pre Java8
111
@SvenRuppert
Decorator - pre Java8
112
@SvenRuppert
Decorator - pre Java8
113
@SvenRuppert
Decorator - Java8
114
@SvenRuppert
Decorator - Java8
115
@SvenRuppert
Decorator - Java8
116
@SvenRuppert
Decorator - Java8 - modify orig Interface
117
@SvenRuppert
Decorator - Java8 - DoubleUnaryOperator
118
@SvenRuppert
Interpreter - pre Java8
119
@SvenRuppert
Interpreter - pre Java8
120
@SvenRuppert
Interpreter - pre Java8
121
@SvenRuppert
Interpreter - pre Java8
122
@SvenRuppert
Interpreter - Java8 - Java9
123
@SvenRuppert
Interpreter - Java8 - Java9
124
@SvenRuppert
Main Idea - DataStructure to Function
Interpreter - Java8 - Java9
125
@SvenRuppert
@SvenRuppert
H O W R E A C T I V E W I L L S TA R T
Observer
127
@SvenRuppertObserver
128
@SvenRuppertObserver
129
@SvenRuppertObserver
130
@SvenRuppertObserver
key not needed anymore
131
@SvenRuppertObserver
132
@SvenRuppertObserver H O W T O C H A I N O B S E R V E R ?
@SvenRuppert
E X E R C I S E S
H O W R E A C T I V E W I L L S TA R T
Observer
@SvenRuppert
H O W T O U S E F U N C T I O N S … A S Y N C …
CompletableFuture
135
@SvenRuppertJava8 - CompletableFuture
Process
Thread
Fiber
CompletionStage CompletionStage CompletionStage
136
@SvenRuppertJava8 - CompletableFuture
137
@SvenRuppertJava8 - CompletableFuture
138
@SvenRuppert
Operator 1
Value A
Operator 2a
Result
Value B Value C
Java8 - CompletableFuture
139
@SvenRuppertJava8 - CompletableFuture
140
@SvenRuppertJava8 - CompletableFuture
141
@SvenRuppertJava8 - CompletableFuture
142
@SvenRuppertJava8 - CompletableFuture
Operator 1
Value A
Operator 2a
Result
Value B Value C
@SvenRuppert
E X E R C I S E S
H O W T O U S E F U N C T I O N S … A S Y N C …
CompletableFuture
@SvenRuppert
H O W T O C R E AT E A G R A P H E A S Y. .
CompletableFutureQueue
145
@SvenRuppertCompletableFutureQueue
CompletableFuture is active after creation
want to define a CompletableFuture without starting it
maybe creating it interactively
we need a function !
Function<T, CompletableFuture<R>>
146
@SvenRuppertCompletableFutureQueue
147
@SvenRuppertCompletableFutureQueue
@SvenRuppert
E X E R C I S E S
H O W T O C R E AT E A G R A P H E A S Y. .
CompletableFutureQueue
Java 9
some nice news…
@SvenRuppert
Java9 - Optional
149
@SvenRuppert
Java9 - JEP266
150
@SvenRuppert
we got Publisher / Subscriber
@SvenRuppert
I N T E R FA C E O R I M P L E M E N TAT I O N ?
Var
@SvenRuppert
E X E R C I S E S
I N T E R FA C E O R I M P L E M E N TAT I O N ?
Var
Summary
X
@SvenRuppert
places to read more about it
www.functional-reactive.org
https://github.com/functional-reactive
Summary
153
@SvenRuppert
please, follow me ;-)
@SvenRuppert
Thank You !!!

More Related Content

Similar to Functional Reactive with Core Java - Workshop - Slides

From Mess To Masterpiece - JFokus 2017
From Mess To Masterpiece - JFokus 2017From Mess To Masterpiece - JFokus 2017
From Mess To Masterpiece - JFokus 2017Sven Ruppert
 
Proxy deep-dive java-one_20151027_001
Proxy deep-dive java-one_20151027_001Proxy deep-dive java-one_20151027_001
Proxy deep-dive java-one_20151027_001Sven Ruppert
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXBruno Borges
 
Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Shivam Prajapati
 
Online gas booking project in java
Online gas booking project in javaOnline gas booking project in java
Online gas booking project in javas4al_com
 
Angular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of SpeedAngular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of SpeedIlia Idakiev
 
Best Automation Testing Tools 2018 | Testbytes
Best Automation Testing Tools 2018 | TestbytesBest Automation Testing Tools 2018 | Testbytes
Best Automation Testing Tools 2018 | TestbytesTestbytes
 
How to create_an_ecatt
How to create_an_ecattHow to create_an_ecatt
How to create_an_ecattMohammed Azhad
 
J-Fall 2014 Community Keynote by Oracle
J-Fall 2014 Community Keynote by OracleJ-Fall 2014 Community Keynote by Oracle
J-Fall 2014 Community Keynote by Oraclejavafxpert
 
Case Study: VF Corporation Takes a Practical Approach to Improving its MOJO w...
Case Study: VF Corporation Takes a Practical Approach to Improving its MOJO w...Case Study: VF Corporation Takes a Practical Approach to Improving its MOJO w...
Case Study: VF Corporation Takes a Practical Approach to Improving its MOJO w...CA Technologies
 
OpenControl Overview - Joshua McKenty
OpenControl Overview - Joshua McKentyOpenControl Overview - Joshua McKenty
OpenControl Overview - Joshua McKentyJulie Coonce
 
SDN Onboarding: Open vSwitch CLIs, OpenDaylight
SDN Onboarding: Open vSwitch CLIs, OpenDaylightSDN Onboarding: Open vSwitch CLIs, OpenDaylight
SDN Onboarding: Open vSwitch CLIs, OpenDaylightTelematika Open Session
 
HTML5 based PivotViewer for Visualizing LInked Data
HTML5 based PivotViewer for Visualizing LInked Data HTML5 based PivotViewer for Visualizing LInked Data
HTML5 based PivotViewer for Visualizing LInked Data Kingsley Uyi Idehen
 
85737-1_Noel_final_v2
85737-1_Noel_final_v285737-1_Noel_final_v2
85737-1_Noel_final_v2Artie Noel
 
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?Steve Poole
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerBill Scott
 
Creating and Managing a Paperless Enterprise
Creating and Managing a Paperless EnterpriseCreating and Managing a Paperless Enterprise
Creating and Managing a Paperless EnterpriseProvokeSolutionsSeattle
 
Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...
Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...
Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...SlideTeam
 

Similar to Functional Reactive with Core Java - Workshop - Slides (20)

From Mess To Masterpiece - JFokus 2017
From Mess To Masterpiece - JFokus 2017From Mess To Masterpiece - JFokus 2017
From Mess To Masterpiece - JFokus 2017
 
Proxy deep-dive java-one_20151027_001
Proxy deep-dive java-one_20151027_001Proxy deep-dive java-one_20151027_001
Proxy deep-dive java-one_20151027_001
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
 
Going web native
Going web nativeGoing web native
Going web native
 
Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02
 
Online gas booking project in java
Online gas booking project in javaOnline gas booking project in java
Online gas booking project in java
 
Angular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of SpeedAngular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of Speed
 
Best Automation Testing Tools 2018 | Testbytes
Best Automation Testing Tools 2018 | TestbytesBest Automation Testing Tools 2018 | Testbytes
Best Automation Testing Tools 2018 | Testbytes
 
How to create_an_ecatt
How to create_an_ecattHow to create_an_ecatt
How to create_an_ecatt
 
J-Fall 2014 Community Keynote by Oracle
J-Fall 2014 Community Keynote by OracleJ-Fall 2014 Community Keynote by Oracle
J-Fall 2014 Community Keynote by Oracle
 
Case Study: VF Corporation Takes a Practical Approach to Improving its MOJO w...
Case Study: VF Corporation Takes a Practical Approach to Improving its MOJO w...Case Study: VF Corporation Takes a Practical Approach to Improving its MOJO w...
Case Study: VF Corporation Takes a Practical Approach to Improving its MOJO w...
 
OpenControl Overview - Joshua McKenty
OpenControl Overview - Joshua McKentyOpenControl Overview - Joshua McKenty
OpenControl Overview - Joshua McKenty
 
SDN Onboarding: Open vSwitch CLIs, OpenDaylight
SDN Onboarding: Open vSwitch CLIs, OpenDaylightSDN Onboarding: Open vSwitch CLIs, OpenDaylight
SDN Onboarding: Open vSwitch CLIs, OpenDaylight
 
HTML5 based PivotViewer for Visualizing LInked Data
HTML5 based PivotViewer for Visualizing LInked Data HTML5 based PivotViewer for Visualizing LInked Data
HTML5 based PivotViewer for Visualizing LInked Data
 
85737-1_Noel_final_v2
85737-1_Noel_final_v285737-1_Noel_final_v2
85737-1_Noel_final_v2
 
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
 
Creating and Managing a Paperless Enterprise
Creating and Managing a Paperless EnterpriseCreating and Managing a Paperless Enterprise
Creating and Managing a Paperless Enterprise
 
How to test less and accomplish more
How to test less and accomplish moreHow to test less and accomplish more
How to test less and accomplish more
 
Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...
Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...
Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...
 

More from Sven Ruppert

JUnit5 Custom TestEngines intro - version 2020-06
JUnit5 Custom TestEngines intro - version 2020-06JUnit5 Custom TestEngines intro - version 2020-06
JUnit5 Custom TestEngines intro - version 2020-06Sven Ruppert
 
Hidden pearls for High-Performance-Persistence
Hidden pearls for High-Performance-PersistenceHidden pearls for High-Performance-Persistence
Hidden pearls for High-Performance-PersistenceSven Ruppert
 
Functional reactive-talk 20170301-001
Functional reactive-talk 20170301-001Functional reactive-talk 20170301-001
Functional reactive-talk 20170301-001Sven Ruppert
 
From Jurassic Park to Microservices
From Jurassic Park to MicroservicesFrom Jurassic Park to Microservices
From Jurassic Park to MicroservicesSven Ruppert
 
From jUnit to Mutationtesting
From jUnit to MutationtestingFrom jUnit to Mutationtesting
From jUnit to MutationtestingSven Ruppert
 
DI Frameworks - hidden pearls
DI Frameworks - hidden pearlsDI Frameworks - hidden pearls
DI Frameworks - hidden pearlsSven Ruppert
 
Warum ich so auf das c von cdi stehe
Warum ich so auf das c von cdi steheWarum ich so auf das c von cdi stehe
Warum ich so auf das c von cdi steheSven Ruppert
 
Java8 ready for the future
Java8 ready for the futureJava8 ready for the future
Java8 ready for the futureSven Ruppert
 
JavaFX8 TestFX - CDI
JavaFX8   TestFX - CDIJavaFX8   TestFX - CDI
JavaFX8 TestFX - CDISven Ruppert
 
Java FX8 JumpStart - JUG ch - zürich
Java FX8   JumpStart - JUG ch - zürichJava FX8   JumpStart - JUG ch - zürich
Java FX8 JumpStart - JUG ch - zürichSven Ruppert
 
Proxy Deep Dive JUG Saxony Day 2015-10-02
Proxy Deep Dive JUG Saxony Day 2015-10-02Proxy Deep Dive JUG Saxony Day 2015-10-02
Proxy Deep Dive JUG Saxony Day 2015-10-02Sven Ruppert
 

More from Sven Ruppert (11)

JUnit5 Custom TestEngines intro - version 2020-06
JUnit5 Custom TestEngines intro - version 2020-06JUnit5 Custom TestEngines intro - version 2020-06
JUnit5 Custom TestEngines intro - version 2020-06
 
Hidden pearls for High-Performance-Persistence
Hidden pearls for High-Performance-PersistenceHidden pearls for High-Performance-Persistence
Hidden pearls for High-Performance-Persistence
 
Functional reactive-talk 20170301-001
Functional reactive-talk 20170301-001Functional reactive-talk 20170301-001
Functional reactive-talk 20170301-001
 
From Jurassic Park to Microservices
From Jurassic Park to MicroservicesFrom Jurassic Park to Microservices
From Jurassic Park to Microservices
 
From jUnit to Mutationtesting
From jUnit to MutationtestingFrom jUnit to Mutationtesting
From jUnit to Mutationtesting
 
DI Frameworks - hidden pearls
DI Frameworks - hidden pearlsDI Frameworks - hidden pearls
DI Frameworks - hidden pearls
 
Warum ich so auf das c von cdi stehe
Warum ich so auf das c von cdi steheWarum ich so auf das c von cdi stehe
Warum ich so auf das c von cdi stehe
 
Java8 ready for the future
Java8 ready for the futureJava8 ready for the future
Java8 ready for the future
 
JavaFX8 TestFX - CDI
JavaFX8   TestFX - CDIJavaFX8   TestFX - CDI
JavaFX8 TestFX - CDI
 
Java FX8 JumpStart - JUG ch - zürich
Java FX8   JumpStart - JUG ch - zürichJava FX8   JumpStart - JUG ch - zürich
Java FX8 JumpStart - JUG ch - zürich
 
Proxy Deep Dive JUG Saxony Day 2015-10-02
Proxy Deep Dive JUG Saxony Day 2015-10-02Proxy Deep Dive JUG Saxony Day 2015-10-02
Proxy Deep Dive JUG Saxony Day 2015-10-02
 

Recently uploaded

Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfFraming an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfUjwalaBharambe
 
MARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupMARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupJonathanParaisoCruz
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Biting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfBiting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfadityarao40181
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...jaredbarbolino94
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementmkooblal
 

Recently uploaded (20)

Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfFraming an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
 
MARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupMARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized Group
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Biting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfBiting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdf
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of management
 

Functional Reactive with Core Java - Workshop - Slides