Opis ebooka: A Functional Approach to Java
Java developers usually tackle the complexity of software development through object-oriented programming (OOP). But not every problem is a good match for OOP. The functional programming (FP) paradigm offers you another approach to solving problems, and Java provides easy-to-grasp FP tools such as lambda expressions and Streams. If you're interested in applying FP concepts to your Java code, this book is for you.
Author Ben Weidig highlights different aspects of functional programming and shows you how to incorporate them into your code without going "fully functional." You'll learn how, when, and why to use FP concepts such as immutability and pure functions to write more concise, reasonable, and future-proof code. Many developers seek to expand their horizons by using OOP and FP together. It's no longer either-or; it's both.
In this book, you will:
- Get a high-level overview of functional programming, including the types already available to Java developers
- Explore different FP concepts and learn how to use them
- Learn how to augment your code and use Java's new functional features in your daily work without going fully functional
- Develop a functional mindset and improve your programming skills regardless of language or paradigm
Wybrane bestsellery
-
Dzięki tej książce zrozumiesz bazowe koncepcje programowania funkcyjnego i przekonasz się, że możesz włączać je do kodu bez rezygnacji z paradygmatu obiektowego. Dowiesz się również, kiedy w swojej codziennej pracy używać takich opcji jak niemutowalność i funkcje czyste i dlaczego warto to robić....
Java. Podejście funkcyjne. Rozszerzanie obiektowego kodu Javy o zasady programowania funkcyjnego Java. Podejście funkcyjne. Rozszerzanie obiektowego kodu Javy o zasady programowania funkcyjnego
(52.20 zł najniższa cena z 30 dni)60.90 zł
87.00 zł(-30%) -
Architect robust solutions like a pro with real-world insights and cutting-edge design techniques. Delve into advanced analytics, machine learning, generative AI, cloud-native architecture, and the key soft skills to excel as a solutions architect.
Solutions Architect's Handbook. Kick-start your career with architecture design principles, strategies, and generative AI techniques - Third Edition Solutions Architect's Handbook. Kick-start your career with architecture design principles, strategies, and generative AI techniques - Third Edition
Saurabh Shrivastava, Neelanjali Srivastav, Rajesh Sheth, Kamal Arora, Rohan Karmarkar
-
To dziewiąte wydanie znakomitego podręcznika programowania dla początkujących, starannie zaktualizowane i uzupełnione o informacje dotyczące Java Platform, Standard Edition 17. Książka rozpoczyna się od solidnej dawki wiedzy o kompilacji i uruchamianiu programu w Javie, słowach kluczowych i istot...(77.40 zł najniższa cena z 30 dni)
90.30 zł
129.00 zł(-30%) -
Build Your Own Programming Language provides a hands-on approach to designing and implementing programming language features in a simple compiler and programming environment. This book will help you create new or domain-specific languages.
Build Your Own Programming Language. A programmer's guide to designing compilers, interpreters, and DSLs for modern computing problems - Second Edition Build Your Own Programming Language. A programmer's guide to designing compilers, interpreters, and DSLs for modern computing problems - Second Edition
-
Java. Podręcznik na start to pozycja idealna dla każdego, kto chce podjąć takie kroki. W przystępny sposób zaznajamia nie tylko z językiem, ale też z podstawowymi koncepcjami stosowanymi podczas programowania - w obrazowy sposób przyrównuje je do sytuacji znanych spoza świata wirtualnego. Autor n...(41.40 zł najniższa cena z 30 dni)
48.30 zł
69.00 zł(-30%) -
Java należy do najpopularniejszych języków programowania na świecie. Używana przez miliony programistów, jest na tyle uniwersalna, że znajduje zastosowanie zarówno w aplikacjach desktopowych, mobilnych, jak i serwerowych, a także w zaawansowanych systemach zarządzania bazami danych. Z jej zalet k...
Java 21. Kurs video. Od "Hello World!" do programowania obiektowego Java 21. Kurs video. Od "Hello World!" do programowania obiektowego
(39.59 zł najniższa cena z 30 dni)49.50 zł
99.00 zł(-50%) -
Oto kolejne wydanie zwięzłego podręcznika dla programistów Javy, który ma ułatwić maksymalne wykorzystanie technologii tego języka w wersji 17. Treść została skrupulatnie przejrzana i uzupełniona o materiał dotyczący nowości w obiektowym modelu Javy. Pierwsza część książki obejmuje wprowadzenie d...(53.40 zł najniższa cena z 30 dni)
62.30 zł
89.00 zł(-30%) -
Kariera zawodowa programisty jest związana z nieustanną nauką i doskonaleniem zdobytych umiejętności. Jednym z podstawowych etapów rozwoju programisty Java jest zaznajomienie się z dobrymi praktykami programistycznymi, co obejmuje także wzorce projektowe – i to im właśnie poświęcony jest te...
Wzorce projektowe w Javie. Kurs video. Programowanie efektywnych rozwiązań Wzorce projektowe w Javie. Kurs video. Programowanie efektywnych rozwiązań
(59.59 zł najniższa cena z 30 dni)67.05 zł
149.00 zł(-55%) -
Oto zaktualizowane i uzupełnione wydanie zwięzłego wprowadzenia do Javy SE 17, przeznaczonego dla profesjonalnych programistów Javy. Przedstawiono w nim wszystkie istotne zagadnienia, łącznie z takimi koncepcjami jak wyrażenia lambda i strumienie, nowoczesnymi konstrukcjami, jak rekordy i klasy z...
Java. Przewodnik doświadczonego programisty. Wydanie III Java. Przewodnik doświadczonego programisty. Wydanie III
(53.40 zł najniższa cena z 30 dni)62.30 zł
89.00 zł(-30%) -
This practical guide teaches inexperienced Java programmers and web developers how to design, develop, test, and deploy highly scalable and maintainable APIs using REST, gRPC, GraphQL, and reactive programming paradigms with Java and Spring Boot. Complete with real-world examples, it will guide y...
Modern API Development with Spring 6 and Spring Boot 3. Design scalable, viable, and reactive APIs with REST, gRPC, and GraphQL using Java 17 and Spring Boot 3 - Second Edition Modern API Development with Spring 6 and Spring Boot 3. Design scalable, viable, and reactive APIs with REST, gRPC, and GraphQL using Java 17 and Spring Boot 3 - Second Edition
O autorze ebooka
Ben Weidig jest programistą samoukiem. Od niemal 20 lat tworzy strony internetowe i różne aplikacje w kilku językach programowania. Jest autorem licznych artykułów o Javie, programowaniu funkcyjnym i najlepszych praktykach kodowania. Bierze również udział w projektach open source.
Kup polskie wydanie:
Java. Podejście funkcyjne. Rozszerzanie obiektowego kodu Javy o zasady programowania funkcyjnego
- Autor:
- Ben Weidig
47,85 zł
87,00 zł
(43.50 zł najniższa cena z 30 dni)
Ebooka "A Functional Approach to Java" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "A Functional Approach to Java" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "A Functional Approach to Java" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- ISBN Ebooka:
- 978-10-981-0987-5, 9781098109875
- Data wydania ebooka:
- 2023-05-09 Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 4.6MB
- Rozmiar pliku Mobi:
- 9.6MB
Spis treści ebooka
- Preface
- New Hardware Needs a New Way of Thinking
- Java Can Be Functional, Too
- Why I Wrote This Book
- Who Should Read This Book
- What You Will Learn
- What about Android?
- A Functional Approach to Android
- Navigating This Book
- Conventions Used in This Book
- Using Code Examples
- OReilly Online Learning
- Acknowledgments
- I. Functional Basics
- 1. An Introduction to Functional Programming
- What Makes a Language Functional?
- Functional Programming Concepts
- Pure Functions and Referential Transparency
- Immutability
- Recursion
- First-Class and Higher-Order Functions
- Functional Composition
- Currying
- Partial Function Application
- Lazy Evaluation
- Advantages of Functional Programming
- Disadvantages of Functional Programming
- Takeaways
- 2. Functional Java
- What Are Java Lambdas?
- Lambda Syntax
- Functional Interfaces
- Lambdas and Outside Variables
- Effectively final
- Re-finalizing a reference
- What about Anonymous Classes?
- What Are Java Lambdas?
- Lambdas in Action
- Creating Lambdas
- Calling Lambdas
- Method References
- Static method references
- Bound non-static method references
- Unbound non-static method references
- Constructor references
- Functional Programming Concepts in Java
- Pure Functions and Referential Transparency
- Immutability
- First-Class Citizenship
- Functional Composition
- Lazy Evaluation
- Takeaways
- 3. Functional Interfaces of the JDK
- The Big Four Functional Interface Categories
- Functions
- Consumers
- Suppliers
- Predicates
- The Big Four Functional Interface Categories
- Why So Many Functional Interface Variants?
- Function Arity
- Primitive Types
- Bridging Functional Interfaces
- Functional Composition
- Extending Functional Support
- Adding Default Methods
- Implementing Functional Interfaces Explicitly
- Creating Static Helpers
- Takeaways
- II. A Functional Approach
- 4. Immutability
- Mutability and Data Structures in OOP
- Immutability (Not Only) in FP
- The State of Java Immutability
- java.lang.String
- Immutable Collections
- Unmodifiable Collections
- Immutable Collection factory methods
- Immutable copies
- Primitives and Primitive Wrappers
- Immutable Math
- Java Time API (JSR-310)
- Enums
- The final Keyword
- Records
- How to Achieve Immutability
- Common Practices
- Takeaways
- 5. Working with Records
- Data Aggregation Types
- Tuples
- A Simple POJO
- From POJO to Immutability
- From POJO to Record
- Data Aggregation Types
- Records to the Rescue
- Behind the Scenes
- Record Features
- Component accessors
- Canonical, compact, and custom constructors
- Object identity and description
- Generics
- Annotations
- Reflection
- Missing Features
- Additional state
- Inheritance
- Component default values and convenience constructors
- Step-by-step creation
- Use Cases and Common Practices
- Record Validation and Data Scrubbing
- Increasing Immutability
- Creating Modified Copies
- Wither methods
- Builder pattern
- Tool-assisted builder
- Records as Local Nominal Tuples
- Better Optional Data Handling
- Ensure non-null container
- Add convenience constructors
- Serializing Evolving Records
- Record Pattern Matching (Java 19+)
- Final Thoughts on Records
- Takeaways
- 6. Data Processing with Streams
- Data Processing with Iteration
- External Iteration
- Internal Iteration
- Data Processing with Iteration
- Streams as Functional Data Pipelines
- Stream Features
- Lazy evaluation
- (Mostly) stateless and non-interfering
- Optimizations included
- Less boilerplate
- Non-reusable
- Primitive streams
- Easy parallelization
- (Lack of) Exception handling
- Stream Features
- Spliterator, the Backbone of Streams
- Building Stream Pipelines
- Creating a Stream
- Doing the Work
- Selecting elements
- Mapping elements
- Peeking into a stream
- Terminating the Stream
- Reducing elements
- Aggregating elements with collectors
- Reducing versus collecting elements
- Aggregate elements directly
- Finding and matching elements
- Consuming elements
- The Cost of Operations
- Modifying Stream Behavior
- To Use a Stream, or Not?
- Takeaways
- 7. Working with Streams
- Primitive Streams
- Iterative Streams
- Infinite Streams
- Random Numbers
- Memory Isnt Infinite
- From Arrays to Streams and Back
- Object-Type Arrays
- Primitive Arrays
- Low-Level Stream Creation
- Working with File I/O
- Reading Directory Contents
- Depth-First Directory Traversal
- Searching the Filesystem
- Reading Files Line-By-Line
- Caveats of File I/O Streams
- Explicit closing of the stream
- Weakly consistent directory content
- Non-guaranteed element order
- Dealing with Date and Time
- Querying Temporal Types
- LocalDate-Range Streams
- Measuring Stream Performance with JMH
- More about Collectors
- Downstream Collectors
- Transforming elements
- Reducing elements
- Flattening collections
- Filtering elements
- Composite collectors
- Downstream Collectors
- Creating Your Own Collector
- Final Thoughts on (Sequential) Streams
- Takeaways
- 8. Parallel Data Processing with Streams
- Concurrency versus Parallelism
- Streams as Parallel Functional Pipelines
- Parallel Streams in Action
- When to Use and When to Avoid Parallel Streams
- Choosing the Right Data Source
- Number of Elements
- Stream Operations
- Pure lambdas
- Parallel-friendly operations
- Reduce versus collect
- Stream Overhead and Available Resources
- Example: War and Peace (revisited)
- Example: Random Numbers
- Parallel Streams Checklist
- Takeaways
- 9. Handling null with Optionals
- The Problem with null References
- How to Handle null in Java (Before Optionals)
- Best Practices for Handling null
- Dont initialize a variable to null
- Dont pass, accept, or return null
- Check everything outside your control
- null is acceptable as an implementation detail
- When and when not to follow the rules
- Best Practices for Handling null
- Tool-Assisted null Checks
- Specialized Types Like Optional
- Optionals to the Rescue
- Whats an Optional?
- Building Optional Pipelines
- Creating an Optional
- Checking for and reacting to values
- Filtering and mapping
- Getting a (fallback) value
- Optionals and Streams
- Optionals as Stream Elements
- Terminal Stream Operations
- Finding an element
- Reducing to a single value
- Optional Primitives
- Caveats
- Optionals Are Ordinary Types
- Identity-Sensitive Methods
- Performance Overhead
- Special Considerations for Collections
- Optionals and Serialization
- Final Thoughts on null References
- Takeaways
- 10. Functional Exception Handling
- Java Exception Handling in a Nutshell
- The try-catch block
- The Different Types of Exceptions and Errors
- Checked exceptions
- Unchecked exceptions
- Errors
- Exception hierarchy in Java
- The Different Types of Exceptions and Errors
- Checked Exceptions in Lambdas
- Safe Method Extraction
- Un-Checking Exceptions
- Sneaky Throws
- A Functional Approach to Exceptions
- Not Throwing Exceptions
- Errors as Values
- Creating the scaffold
- Making Result<V, E> functional
- The Try/Success/Failure Pattern
- Creating a pipeline
- Handling success and failure
- Running the pipeline
- Final Thoughts on Functional Exception Handling
- Takeaways
- 11. Lazy Evaluation
- Laziness Versus Strictness
- How Strict Is Java?
- Short-Circuit Evaluation
- Control Structures
- Lazy Types in the JDK
- Lazy Maps
- Streams
- Optionals
- Lambdas and Higher-Order Functions
- An Eager Approach
- A Lazier Approach
- A Functional Approach
- Delayed Executions with Thunks
- Creating a Simple Thunk
- A Thread-Safe Thunk
- Final Thoughts on Laziness
- Takeaways
- 12. Recursion
- What Is Recursion?
- Head Versus Tail Recursion
- Recursion and the Call Stack
- What Is Recursion?
- A More Complex Example
- Iterative Tree Traversal
- Recursive Tree Traversal
- Recursion-Like Streams
- Final Thoughts on Recursion
- Takeaways
- 13. Asynchronous Tasks
- Synchronous versus Asynchronous
- Java Futures
- Designing Asynchronous Pipelines with CompletableFutures
- Promising a Value
- Creating a CompletableFuture
- Compositing and Combining Tasks
- Compositing tasks
- Combining tasks
- Running more two CompletableFuture instances at once
- Exception Handling
- Data and error channel revisited
- Rejected either tasks
- Terminal Operations
- Creating a CompletableFuture Helper
- The helper scaffold
- Designing eachOf
- Improving the CompletableFutures helper
- Manual Creation and Completion
- Manual Creation
- Manual Completion
- Use Cases for Manually Created and Completed Instances
- CompletableFutures as return values
- Pending CompletableFuture pipelines
- About Thread Pools and Timeouts
- Final Thoughts on Asynchronous Tasks
- Takeaways
- 14. Functional Design Patterns
- What Are Design Patterns?
- (Functional) Design Patterns
- Factory Pattern
- Object-oriented approach
- A more functional approach
- Factory Pattern
- Decorator Pattern
- Object-oriented approach
- A more functional approach
- Strategy Pattern
- Object-oriented approach
- A more functional approach
- Builder Pattern
- Object-oriented approach
- A more functional approach
- Final Thoughts on Functional Design Patterns
- Takeaways
- 15. A Functional Approach to Java
- OOP Versus FP Principles
- A Functional Mindset
- Functions Are First-Class Citizens
- Avoiding Side Effects
- Pure functions
- Pure object methods
- Isolating side effects
- Favor expressions over statements
- Moving toward immutability
- Functional Data Processing with Map/Filter/Reduce
- Abstractions Guide Implementations
- Building Functional Bridges
- Method references-friendly signatures
- Using retroactive functional interfaces
- Lambda factories for common operations
- Implementing functional interfaces explicitly
- Functional null handling with Optionals
- Parallelism and Concurrency Made Easy
- Be Mindful of Potential Overhead
- Functional Architecture in an Imperative World
- From Objects to Values
- Separation of Concerns
- The Different Sizes of an FC/IS
- Testing an FC/IS
- Final Thoughts on a Functional Approach to Java
- Takeaways
- Index
O'Reilly Media - inne książki
-
Python is an excellent way to get started in programming, and this clear, concise guide walks you through Python a step at a time—beginning with basic programming concepts before moving on to functions, data structures, and object-oriented design. This revised third edition reflects the gro...(143.65 zł najniższa cena z 30 dni)
152.15 zł
179.00 zł(-15%) -
Developers with the ability to operate, troubleshoot, and monitor applications in Kubernetes are in high demand today. To meet this need, the Cloud Native Computing Foundation created a certification exam to establish a developer's credibility and value in the job market for work in a Kubernetes ...
Certified Kubernetes Application Developer (CKAD) Study Guide. 2nd Edition Certified Kubernetes Application Developer (CKAD) Study Guide. 2nd Edition
(177.65 zł najniższa cena z 30 dni)186.15 zł
219.00 zł(-15%) -
The surging predictive analytics market is expected to grow from $10.5 billion today to $28 billion by 2026. With the rise in automation across industries, the increase in data-driven decision-making, and the proliferation of IoT devices, predictive analytics has become an operational necessity i...(194.65 zł najniższa cena z 30 dni)
203.15 zł
239.00 zł(-15%) -
How do some organizations maintain 24-7 internet-scale operations? How can organizations integrate security while continuously deploying new features? How do organizations increase security within their DevOps processes?This practical guide helps you answer those questions and more. Author Steve ...(160.65 zł najniższa cena z 30 dni)
169.14 zł
199.00 zł(-15%) -
Many organizations today analyze and share large, sensitive datasets about individuals. Whether these datasets cover healthcare details, financial records, or exam scores, it's become more difficult for organizations to protect an individual's information through deidentification, anonymization, ...(228.65 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
Large language models (LLMs) and diffusion models such as ChatGPT and Stable Diffusion have unprecedented potential. Because they have been trained on all the public text and images on the internet, they can make useful contributions to a wide variety of tasks. And with the barrier to entry great...(228.65 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
Filled with tips, tricks, and techniques, this easy-to-use book is the perfect resource for intermediate to advanced users of Excel. You'll find complete recipes for more than a dozen topics covering formulas, PivotTables, charts, Power Query, and more. Each recipe poses a particular problem and ...(194.65 zł najniższa cena z 30 dni)
203.15 zł
239.00 zł(-15%) -
Traditional data architecture patterns are severely limited. To use these patterns, you have to ETL data into each tool—a cost-prohibitive process for making warehouse features available to all of your data. The lack of flexibility with these patterns requires you to lock into a set of prio...(211.65 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
In today's data-driven world, understanding statistical models is crucial for effective analysis and decision making. Whether you're a beginner or an experienced user, this book equips you with the foundational knowledge to grasp and implement statistical models within Tableau. Gain the confidenc...(186.15 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
If you haven't modernized your data cleaning and reporting processes in Microsoft Excel, you're missing out on big productivity gains. And if you're looking to conduct rigorous data analysis, more can be done in Excel than you think. This practical book serves as an introduction to the modern Exc...(186.15 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka drukowana
Oceny i opinie klientów: A Functional Approach to Java Ben Weidig (0) Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.