java8-patterns

Justin Lin
Justin LinTechnology / Community Evangelist at Free lancer
#JCConf
Java 8 Patterns
#JCConf
Agenda
• Fluent Decorator
• In, Out, In, Out, Shake It All About
• The Lonely Override
• Monad
• Functional Reactive?
2
#JCConf
Fluent Decorator
3
#JCConf
Comparator
• Building a Comparator before Java 8
• Java 8
Wait! you’re cheating!!
It‘s not the reverse order.
4
#JCConf
• Use Comparator.reverseOrder
• Use Comparator.comparing
• High order function
Anonymous inner classes were designed to make
it easier for Java programmers to pass
around code as data.
5
#JCConf
• Order nulls before non-null elements.
• Decorator Pattern
6
#JCConf
• Can you figure out this?
Refactor it to
nullsFirst(byStringLength())?
7
#JCConf
• This would be better!
• last name, and then first name, zip code …
8
#JCConf
• Refactor the Decorator pattern itself
9
#JCConf
In, Out, In, Out,
Shake It All About《Java 8 Lambdas》
10
#JCConf
Logger
• Invoke isLoggable only to check whether
calling a method on the Logger
• it uses information from the rental, but does
not use information from the customer
• the method is on the wrong object
11
#JCConf
Logger
• Invoke isLoggable only to check whether
calling a method on the Logger
• it uses information from Logger, but only to
push a value into it
• the block is on the wrong object
12
#JCConf
Map
• it uses information from the Map, but only to
push a value into it.
• the block is on the wrong object.
• computeIfPresent、compute、merge …
13
#JCConf
The Lonely Override《Java 8 Lambdas》
14
#JCConf
ThreadLocal
• Subclass solely to override a single method
• What you really want is providing a block of
code to the method!
15
#JCConf
• This wasn't an antipattern before Java 8—it
was the idiomatic way of writing this code
• Source code of withInitial
16
#JCConf
Monad Patterns
17
#JCConf
Optional
• Null sucks, right?
• Optional is trendy now! Optional<Order>
WET
18
#JCConf
• Behavioral WET(Write Everything Twice)
– You create Optional<T>
– invoke isPresent of Optional<T>
– if true, get and map T to Optional<U>
– if false, return Optional.empty()
• You uses information from Optional<T>,
but only to get a Optional<U> from it
• In, Out, In, Out, Shake It All About
19
#JCConf
• Let's flatMap repeatedly.
• Using method reference is much clearer.
• Monad? Why is it important?
– Enable me to talk about monad right now!!
20
#JCConf
• Seriously, a monad is a pattern
– You create M<T>
– do actions on M<T>
– get and map T value(s) to M<U>
– do actions on M<U> or else
• Optional Monad
– You create Optional<T>
– invoke isPresent of Optional<T>
– if true, get and map T to Optional<U>
– if false, return Optional.empty()
21
#JCConf
• Seriously, a monad is a pattern
– You create M<T>
– do actions on M<T>
– get and map T value(s) to M<U>
– do actions on M<U> or else
• Optional Monad
– You create Optional<T>
– invoke isPresent of Optional<T>
– if true, get and map T to Optional<U>
– if false, return Optional.empty()
Hide the boilerplate of
computational context
Hide the boilerplate of
"if non-null“ logic
22
#JCConf 23
#JCConf
Stream
• for loop hell ... XD
• Call back hell ... XD
24
#JCConf
• Stream Monad
– You create Stream<T>
– forEach T element
– map T to Stream<U>
• A simpler example
Hide the boilerplate of
nested loops
25
#JCConf
• The flatMap operation
4 1
1 2 3 4 5 6
flatMap(List<Integer> to Stream<Integer>)
26
#JCConf
CompletableFuture
• A monad is a pattern
– You create M<T>
– do actions on M<T>
– get and map T value(s) to M<U>
– do actions on M<U> or else
Hide the boilerplate of
computational context
27
#JCConf
• Lambda rocks!
• Lambda sucks!!
– You create Future<T>
– wait until T is ready (in another thread)
– use T and the supplied code to create Future<U>
Hide the boilerplate of thread
logic. You‘ve done that.
Future<String>
28
#JCConf
• CompletableFuture Monad
flatMap
CompletableFuture<String>
CompletableFuture<String>
29
#JCConf
• Composable Future
solo
birthdays
30
#JCConf
Functional Reactive?
31
#JCConf
Functional Reactive Programming
• Reactive
• Data flow
• Propagation of change
• Observer
• Functional
• Asynchronous
• …
WTF?
32
#JCConf
Reactive Programming
• A programming paradigm oriented around
data flows and the propagation of change
33
#JCConf
• If Java supports reactive programming
directly, it should ...
• Of course, it's impossible in the language
level for Java.
• Model-View-Controller architecture can
allow changes in the underlying model to
automatically be reflected in the view
(10, 15, 25)
(20, 25, 35)
34
#JCConf
Observer
• In MVC, Model-View could be implemented
by the Observer pattern.
• Maybe, we can ...
(10, 15, 25)
(20, 25, 35)
35
#JCConf
songs
• When things become complex ...
names
albums 1900s
soloartists songs
songs songs
songs
lengths
nationalities
birthdays
36
#JCConf
• RxJava Observable
• Look up artist information
• filter、flatMap? map? Stream?
Observable<Artist>
37
#JCConf
Functional Reactive Programming
• A programming paradigm for reactive
programming using the building blocks of
functional programming
• filter、map、reduce、flatMap are
patterns from functional programming
38
#JCConf
• Stream builds up computational workflows
over in-memory collections
• Observable composes and sequences
asynchronous and event-based systems.
Instead of pulling data out, it gets pushed in
• CompletableFuture is to a single value
• Observable is a sequence of values
39
#JCConf
Asynchronous
• "that executes in whole seconds is probably
doing something wrong…" - Brendan Eich
• it's 100 milliseconds from research
conducted by Robert Miller
40
#JCConf
• Make a mountain out of a molehill … XD
41
#JCConf
Summary
• Design patterns evolve more and more
exquisitely since Java 8.
• Lambda furthers advanced refactoring.
• As the language evolves, so do the idioms
that you use when programming.
• A monad is a pattern.
• Functional reactive programming is a mixture
of multi patterns and paradigms.
42
#JCConf
References
• http://books.gotop.com.tw/v_ACL042200
• http://www.slideshare.net/JustinSDK/jdk8-
functional-api
• http://www.slideshare.net/mariofusco/monadic-java
• http://shop.oreilly.com/product/0636920030713.do
• http://en.wikipedia.org/wiki/Reactive_programming
• https://github.com/ReactiveX/RxJava
• https://speakerdeck.com/benjchristensen/functional
-reactive-programming-with-rxjava-javaone-2013
• http://shop.oreilly.com/product/9780596802806.do
43
#JCConf
Thanks!!
44
1 of 44

Recommended

LINQ Inside by
LINQ InsideLINQ Inside
LINQ Insidejeffz
2K views32 slides
使用.NET构建轻量级分布式框架 by
使用.NET构建轻量级分布式框架使用.NET构建轻量级分布式框架
使用.NET构建轻量级分布式框架jeffz
2.2K views19 slides
Why scala is not my ideal language and what I can do with this by
Why scala is not my ideal language and what I can do with thisWhy scala is not my ideal language and what I can do with this
Why scala is not my ideal language and what I can do with thisRuslan Shevchenko
939 views32 slides
RxJava Applied by
RxJava AppliedRxJava Applied
RxJava AppliedIgor Lozynskyi
626 views30 slides
Reactive Thinking in Java by
Reactive Thinking in JavaReactive Thinking in Java
Reactive Thinking in JavaYakov Fain
1.6K views50 slides
Real world functional reactive programming by
Real world functional reactive programmingReal world functional reactive programming
Real world functional reactive programmingEric Polerecky
2.3K views38 slides

More Related Content

What's hot

Reactive programming with Rxjava by
Reactive programming with RxjavaReactive programming with Rxjava
Reactive programming with RxjavaChristophe Marchal
1.2K views76 slides
Gradle起步走: 以CLI Application為例 @ JCConf 2014 by
Gradle起步走: 以CLI Application為例 @ JCConf 2014Gradle起步走: 以CLI Application為例 @ JCConf 2014
Gradle起步走: 以CLI Application為例 @ JCConf 2014Chen-en Lu
6.4K views30 slides
RxJS and Reactive Programming - Modern Web UI - May 2015 by
RxJS and Reactive Programming - Modern Web UI - May 2015RxJS and Reactive Programming - Modern Web UI - May 2015
RxJS and Reactive Programming - Modern Web UI - May 2015Ben Lesh
56.6K views56 slides
Reactive programming using rx java & akka actors - pdx-scala - june 2014 by
Reactive programming   using rx java & akka actors - pdx-scala - june 2014Reactive programming   using rx java & akka actors - pdx-scala - june 2014
Reactive programming using rx java & akka actors - pdx-scala - june 2014Thomas Lockney
9K views38 slides
Functional Reactive Programming / Compositional Event Systems by
Functional Reactive Programming / Compositional Event SystemsFunctional Reactive Programming / Compositional Event Systems
Functional Reactive Programming / Compositional Event SystemsLeonardo Borges
18K views72 slides
Reflection in Pharo: Beyond Smalltak by
Reflection in Pharo: Beyond SmalltakReflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond SmalltakMarcus Denker
1.2K views56 slides

What's hot(20)

Gradle起步走: 以CLI Application為例 @ JCConf 2014 by Chen-en Lu
Gradle起步走: 以CLI Application為例 @ JCConf 2014Gradle起步走: 以CLI Application為例 @ JCConf 2014
Gradle起步走: 以CLI Application為例 @ JCConf 2014
Chen-en Lu6.4K views
RxJS and Reactive Programming - Modern Web UI - May 2015 by Ben Lesh
RxJS and Reactive Programming - Modern Web UI - May 2015RxJS and Reactive Programming - Modern Web UI - May 2015
RxJS and Reactive Programming - Modern Web UI - May 2015
Ben Lesh56.6K views
Reactive programming using rx java & akka actors - pdx-scala - june 2014 by Thomas Lockney
Reactive programming   using rx java & akka actors - pdx-scala - june 2014Reactive programming   using rx java & akka actors - pdx-scala - june 2014
Reactive programming using rx java & akka actors - pdx-scala - june 2014
Thomas Lockney9K views
Functional Reactive Programming / Compositional Event Systems by Leonardo Borges
Functional Reactive Programming / Compositional Event SystemsFunctional Reactive Programming / Compositional Event Systems
Functional Reactive Programming / Compositional Event Systems
Leonardo Borges18K views
Reflection in Pharo: Beyond Smalltak by Marcus Denker
Reflection in Pharo: Beyond SmalltakReflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond Smalltak
Marcus Denker1.2K views
Angular Weekend by Troy Miles
Angular WeekendAngular Weekend
Angular Weekend
Troy Miles1.2K views
RxJava applied [JavaDay Kyiv 2016] by Igor Lozynskyi
RxJava applied [JavaDay Kyiv 2016]RxJava applied [JavaDay Kyiv 2016]
RxJava applied [JavaDay Kyiv 2016]
Igor Lozynskyi514 views
Streams, Streams Everywhere! An Introduction to Rx by Andrzej Sitek
Streams, Streams Everywhere! An Introduction to RxStreams, Streams Everywhere! An Introduction to Rx
Streams, Streams Everywhere! An Introduction to Rx
Andrzej Sitek2.4K views
Dev Day 2019: Mike Sperber – Software Design für die Seele by DevDay Dresden
Dev Day 2019: Mike Sperber – Software Design für die SeeleDev Day 2019: Mike Sperber – Software Design für die Seele
Dev Day 2019: Mike Sperber – Software Design für die Seele
DevDay Dresden791 views
Asynchronous job queues with python-rq by Ashish Acharya
Asynchronous job queues with python-rqAsynchronous job queues with python-rq
Asynchronous job queues with python-rq
Ashish Acharya2.5K views
Gatling @ Scala.Io 2013 by slandelle
Gatling @ Scala.Io 2013Gatling @ Scala.Io 2013
Gatling @ Scala.Io 2013
slandelle6.1K views
Reactive Programming in Java 8 with Rx-Java by Kasun Indrasiri
Reactive Programming in Java 8 with Rx-JavaReactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-Java
Kasun Indrasiri30.2K views
A Type-level Ruby Interpreter for Testing and Understanding by mametter
A Type-level Ruby Interpreter for Testing and UnderstandingA Type-level Ruby Interpreter for Testing and Understanding
A Type-level Ruby Interpreter for Testing and Understanding
mametter12.7K views
Functional Programming in JavaScript by Troy Miles
Functional Programming in JavaScriptFunctional Programming in JavaScript
Functional Programming in JavaScript
Troy Miles922 views
Intro to Functional Programming with RxJava by Mike Nakhimovich
Intro to Functional Programming with RxJavaIntro to Functional Programming with RxJava
Intro to Functional Programming with RxJava
Mike Nakhimovich21.8K views
Pharo Optimising JIT Internals by ESUG
Pharo Optimising JIT InternalsPharo Optimising JIT Internals
Pharo Optimising JIT Internals
ESUG925 views

Similar to java8-patterns

Coroutines and RxJava - An Asynchronicity Comparison by
Coroutines and RxJava - An Asynchronicity ComparisonCoroutines and RxJava - An Asynchronicity Comparison
Coroutines and RxJava - An Asynchronicity ComparisonManuel Vicente Vivo
1.1K views261 slides
JDK8 Functional API by
JDK8 Functional APIJDK8 Functional API
JDK8 Functional APIJustin Lin
18.7K views49 slides
Clean Code with Java 8 - Functional Patterns and Best Practices by
Clean Code with Java 8 - Functional Patterns and Best PracticesClean Code with Java 8 - Functional Patterns and Best Practices
Clean Code with Java 8 - Functional Patterns and Best PracticesVictor Rentea
2.6K views20 slides
magellan_mongodb_workload_analysis by
magellan_mongodb_workload_analysismagellan_mongodb_workload_analysis
magellan_mongodb_workload_analysisPraveen Narayanan
91 views24 slides
Functional Patterns with Java8 at Devoxx UK - Slides by
Functional Patterns with Java8 at Devoxx UK - SlidesFunctional Patterns with Java8 at Devoxx UK - Slides
Functional Patterns with Java8 at Devoxx UK - SlidesVictor Rentea
431 views22 slides
vpTech - Practical F# in Finance by
vpTech - Practical F# in FinancevpTech - Practical F# in Finance
vpTech - Practical F# in FinanceAmin Khansari
660 views40 slides

Similar to java8-patterns(20)

Coroutines and RxJava - An Asynchronicity Comparison by Manuel Vicente Vivo
Coroutines and RxJava - An Asynchronicity ComparisonCoroutines and RxJava - An Asynchronicity Comparison
Coroutines and RxJava - An Asynchronicity Comparison
Manuel Vicente Vivo1.1K views
JDK8 Functional API by Justin Lin
JDK8 Functional APIJDK8 Functional API
JDK8 Functional API
Justin Lin18.7K views
Clean Code with Java 8 - Functional Patterns and Best Practices by Victor Rentea
Clean Code with Java 8 - Functional Patterns and Best PracticesClean Code with Java 8 - Functional Patterns and Best Practices
Clean Code with Java 8 - Functional Patterns and Best Practices
Victor Rentea2.6K views
Functional Patterns with Java8 at Devoxx UK - Slides by Victor Rentea
Functional Patterns with Java8 at Devoxx UK - SlidesFunctional Patterns with Java8 at Devoxx UK - Slides
Functional Patterns with Java8 at Devoxx UK - Slides
Victor Rentea431 views
vpTech - Practical F# in Finance by Amin Khansari
vpTech - Practical F# in FinancevpTech - Practical F# in Finance
vpTech - Practical F# in Finance
Amin Khansari660 views
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je... by CloudBees
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...
CloudBees1.2K views
The State of Lightweight Threads for the JVM by Volkan Yazıcı
The State of Lightweight Threads for the JVMThe State of Lightweight Threads for the JVM
The State of Lightweight Threads for the JVM
Volkan Yazıcı942 views
MongoUK 2011 - Rplacing RabbitMQ with MongoDB by Boxed Ice
MongoUK 2011 - Rplacing RabbitMQ with MongoDBMongoUK 2011 - Rplacing RabbitMQ with MongoDB
MongoUK 2011 - Rplacing RabbitMQ with MongoDB
Boxed Ice9.2K views
Brixton Library Technology Initiative Week1 Recap by Basil Bibi
Brixton Library Technology Initiative Week1 RecapBrixton Library Technology Initiative Week1 Recap
Brixton Library Technology Initiative Week1 Recap
Basil Bibi245 views
Lifecycle of a JIT compiled code by J On The Beach
Lifecycle of a JIT compiled codeLifecycle of a JIT compiled code
Lifecycle of a JIT compiled code
J On The Beach448 views
Functional programming and Elm by Fangda Wang
Functional programming and ElmFunctional programming and Elm
Functional programming and Elm
Fangda Wang69 views
Functional Patterns with Java8 @Bucharest Java User Group by Victor Rentea
Functional Patterns with Java8 @Bucharest Java User GroupFunctional Patterns with Java8 @Bucharest Java User Group
Functional Patterns with Java8 @Bucharest Java User Group
Victor Rentea42.7K views
Software Uni Conf October 2014 by Nayden Gochev
Software Uni Conf October 2014Software Uni Conf October 2014
Software Uni Conf October 2014
Nayden Gochev3.8K views
Generators, Coroutines and Other Brain Unrolling Sweetness. Adi Shavit ➠ Cor... by corehard_by
Generators, Coroutines and Other Brain Unrolling Sweetness. Adi Shavit ➠  Cor...Generators, Coroutines and Other Brain Unrolling Sweetness. Adi Shavit ➠  Cor...
Generators, Coroutines and Other Brain Unrolling Sweetness. Adi Shavit ➠ Cor...
corehard_by74 views
[JCConf 2017] Reactive Programming with Reactor by Swanky Hsiao
[JCConf 2017] Reactive Programming with Reactor[JCConf 2017] Reactive Programming with Reactor
[JCConf 2017] Reactive Programming with Reactor
Swanky Hsiao1.5K views
java in Aartificial intelligent by virat andodariya by viratandodariya
java in Aartificial intelligent by virat andodariyajava in Aartificial intelligent by virat andodariya
java in Aartificial intelligent by virat andodariya
viratandodariya359 views

More from Justin Lin

Ch14 簡介 Spring Boot by
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring BootJustin Lin
872 views22 slides
Ch13 整合 Spring MVC/Security by
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/SecurityJustin Lin
280 views58 slides
Ch12 Spring 起步走 by
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走Justin Lin
274 views31 slides
Ch11 簡介 JavaMail by
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMailJustin Lin
157 views8 slides
Ch10 Web 容器安全管理 by
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Justin Lin
153 views30 slides
Ch09 整合資料庫 by
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫Justin Lin
233 views92 slides

More from Justin Lin(20)

Ch14 簡介 Spring Boot by Justin Lin
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin872 views
Ch13 整合 Spring MVC/Security by Justin Lin
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin280 views
Ch12 Spring 起步走 by Justin Lin
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin274 views
Ch11 簡介 JavaMail by Justin Lin
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin157 views
Ch10 Web 容器安全管理 by Justin Lin
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin153 views
Ch09 整合資料庫 by Justin Lin
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin233 views
Ch08 自訂標籤 by Justin Lin
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin133 views
Ch07 使用 JSTL by Justin Lin
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
Justin Lin161 views
Ch06 使用 JSP by Justin Lin
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
Justin Lin250 views
Ch05 Servlet 進階 API、過濾器與傾聽器 by Justin Lin
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin204 views
Ch04 會話管理 by Justin Lin
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
Justin Lin238 views
Ch03 請求與回應 by Justin Lin
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin236 views
Ch02 撰寫與設定 Servlet by Justin Lin
Ch02 撰寫與設定 ServletCh02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin352 views
CH1. 簡介 Web 應用程式 by Justin Lin
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin1.2K views
14. 進階主題 by Justin Lin
14. 進階主題14. 進階主題
14. 進階主題
Justin Lin406 views
13.並行、平行與非同步 by Justin Lin
13.並行、平行與非同步13.並行、平行與非同步
13.並行、平行與非同步
Justin Lin237 views
12. 除錯、測試與效能 by Justin Lin
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin153 views
11. 常用內建模組 by Justin Lin
11. 常用內建模組11. 常用內建模組
11. 常用內建模組
Justin Lin149 views
10. 資料永續與交換 by Justin Lin
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
Justin Lin156 views
9. 資料結構 by Justin Lin
9. 資料結構9. 資料結構
9. 資料結構
Justin Lin292 views

Recently uploaded

Special_edition_innovator_2023.pdf by
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdfWillDavies22
18 views6 slides
Powerful Google developer tools for immediate impact! (2023-24) by
Powerful Google developer tools for immediate impact! (2023-24)Powerful Google developer tools for immediate impact! (2023-24)
Powerful Google developer tools for immediate impact! (2023-24)wesley chun
10 views38 slides
Future of Indian ConsumerTech by
Future of Indian ConsumerTechFuture of Indian ConsumerTech
Future of Indian ConsumerTechKapil Khandelwal (KK)
22 views68 slides
6g - REPORT.pdf by
6g - REPORT.pdf6g - REPORT.pdf
6g - REPORT.pdfLiveplex
10 views23 slides
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...Bernd Ruecker
40 views69 slides
PRODUCT PRESENTATION.pptx by
PRODUCT PRESENTATION.pptxPRODUCT PRESENTATION.pptx
PRODUCT PRESENTATION.pptxangelicacueva6
15 views1 slide

Recently uploaded(20)

Special_edition_innovator_2023.pdf by WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2218 views
Powerful Google developer tools for immediate impact! (2023-24) by wesley chun
Powerful Google developer tools for immediate impact! (2023-24)Powerful Google developer tools for immediate impact! (2023-24)
Powerful Google developer tools for immediate impact! (2023-24)
wesley chun10 views
6g - REPORT.pdf by Liveplex
6g - REPORT.pdf6g - REPORT.pdf
6g - REPORT.pdf
Liveplex10 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker40 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb14 views
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab21 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10300 views
Case Study Copenhagen Energy and Business Central.pdf by Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana16 views

java8-patterns