Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
Design Patterns and Best Practices in Java

You're reading from   Design Patterns and Best Practices in Java A comprehensive guide to building smart and reusable code in Java

Arrow left icon
Product type Paperback
Published in Jun 2018
Publisher Packt
ISBN-13 9781786463593
Length 280 pages
Edition 1st Edition
Languages
Arrow right icon
Authors (3):
Arrow left icon
Kamalmeet Singh Kamalmeet Singh
Author Profile Icon Kamalmeet Singh
Kamalmeet Singh
Lucian-Paul Torje Lucian-Paul Torje
Author Profile Icon Lucian-Paul Torje
Lucian-Paul Torje
Adrian Ianculescu Adrian Ianculescu
Author Profile Icon Adrian Ianculescu
Adrian Ianculescu
Arrow right icon
View More author details
Toc

Table of Contents (15) Chapters Close

Title Page
Packt Upsell
Contributors
Preface
1. From Object-Oriented to Functional Programming FREE CHAPTER 2. Creational Patterns 3. Behavioral Patterns 4. Structural Patterns 5. Functional Patterns 6. Let's Get Reactive 7. Reactive Design Patterns 8. Trends in Application Architecture 9. Best Practices in Java 1. Other Books You May Enjoy Index

Functional design patterns


In this section, we are going to learn about the following functional design patterns:

  • MapReduce
  • Loan pattern
  • Tail call optimization
  • Memoization
  • The execute around method

MapReduce

MapReduce is a technique used for massive parallel programming, developed by Google, which emerged as a functional design pattern because of the ease of expression. In functional programming, it is a form of a monad.

Intent

The intent is to break existing tasks into multiple smaller ones, run them in parallel, and aggregate the result (reduce). It is expected to improve performance for big data.

Examples

We will demonstrate the usage of the MapReduce pattern by parsing and aggregating logs from multiple web services based on a given Sleuth span and calculating the overall duration for each hit endpoint. The logs are taken from https://cloud.spring.io/spring-cloud-sleuth/spring-cloud-sleuth.html and split into the corresponding service log file. The following code reads in parallel all the logs...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at AU $19.99/month. Cancel anytime
Banner background image