نام کتاب
A Functional Approach to Java

Augmenting Object-Oriented Code with Functional Principles

Ben Weidig

Paperback406 Pages
PublisherO'Reilly
Edition1
LanguageEnglish
Year2023
ISBN9781098109929
904
A3674
انتخاب نوع چاپ:
جلد سخت
667,000ت
0
جلد نرم
607,000ت
0
طلق پاپکو و فنر
617,000ت
0
مجموع:
0تومان
کیفیت متن:اورجینال انتشارات
قطع:B5
رنگ صفحات:دارای متن و کادر رنگی
پشتیبانی در روزهای تعطیل!
ارسال به سراسر کشور

#Java

#software_development

#Design_Patterns

توضیحات

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


Table of Contents

Part I. Functional Basics

Chapter 1. An Introduction to Functional Programming

Chapter 2. Functional Java

Chapter 3. Functional Interfaces of the JDK

Part II. A Functional Approach

Chapter 4. Immutability

Chapter 5. Working with Records

Chapter 6. Data Processing with Streams

Chapter 7. Working with Streams

Chapter 8. Parallel Data Processing with Streams

Chapter 9. Handling null with Optionals

Chapter 10. Functional Exception Handling

Chapter 11. Lazy Evaluation

Chapter 12. Recursion

Chapter 13. Asynchronous Tasks

Chapter 14. Functional Design Patterns

Chapter 15. A Functional Approach to Java


Why I Wrote This Book

After using another multipurpose language with excellent functional programming support—Swift—and seeing the benefits firsthand, I gradually introduced more and more functional principles in my Java-based projects, too. Thanks to lambda expressions and all the other features introduced in Java 8 and later, all the tools necessary were readily available. But after using these tools more frequently and discussing them with my colleagues, I realized something: How to use lambdas, Streams, and all the other functional goodies provided by Java is easy to grasp. But without a deeper understanding of why and when you should use them—​and when not to—​you won’t unlock their full potential, and it will just be “new wine in old wineskins.”


So I decided to write this book to highlight the different concepts that make a language functional, and how you can incorporate them into your Java code, either with the tools provided by the JDK or by creating them yourself. A functional approach to your Java code will most likely challenge the status quo and go against best practices you were using before. But by embracing a more functional way of doing things, like immutability and pure functions, you will be able to write more concise, more reasonable, and future-proof code that is less prone to bugs.


Who Should Read This Book

This book is for you if you are curious about functional programming and want to know what all the fuss is about and apply it to your Java code. You might already be using some functional Java types but desire a more profound knowledge of why and how to apply them more effectively.


There is no need to be an expert on OOP, but the book is not a beginner’s guide to Java or OOP. You should already be familiar with the Java standard library. No prior knowledge of functional programming is required. Every concept is introduced with an explanation and examples.


The book covers Java 17 as the latest Long-Term-Support (LTS) version available at publication. Knowing that many developers need to support projects with earlier versions, the general baseline will be the previous LTS, Java 11. But even if you’re stuck on Java 8, many of the discussed topics are relevant. However, some chapters will rely on newer features, like Records, which were introduced in Java 14.


This book might not be for you if you are looking for a compartmentalized, recipe-style book presenting “ready-to-implement” solutions. Its main intention is to introduce functional concepts and idioms and teach you how to incorporate them into your Java code.


What You Will Learn

By the end of this book, you will have a fundamental knowledge of functional programming and its underlying concepts and how to apply this knowledge to your daily work. Every Java functional type will be at your disposal, and you will be able to build anything missing from the JDK by yourself, if necessary.


You will learn about the concepts and importance of the following aspects of functional programming:

  • Composition - Build modular and easy composable blocks.
  • Expressiveness - Write more concise code that clearly expresses its intent.
  • Safer code - Create safer data structures without side effects that don’t need to deal with race conditions or locks, which are hard to use without introducing bugs.
  • Modularity - Break down larger projects into more easily manageable modules.
  • Maintainability - Use smaller functional blocks with less interconnection to make changes and refactoring safer without breaking other parts of your code.
  • Data manipulation - Build efficient data manipulation pipelines with less complexity.
  • Performance - Immutability and predictability allow you to scale horizontally with parallelism without much thought about it.


Even without going fully functional, your code will benefit from the concepts and idioms presented in this book. And not only your Java code. You will tackle development challenges with a functional mindset, improving your programming regardless of the used language or paradigm.


Review

"The functional paradigm is a significant change in Java programming, but it doesn't mean abandoning OOP completely. 'A Functional Approach to Java' is a must-read for any programmer looking to improve their skills and stay current in programming."

— A N M Bazlur Rahman, Java Champion


About the Author

Ben Weidig is a self-taught software developer with almost two decades of experience in professional web, mobile, and systems programming in various languages. After learning the ropes of professional software development and project management at a clinical research organization, he became a self-employed software developer and is now co-director of a Java-based SaaS company.


Besides sharing his expertise and experiences by writing articles about Java, functional programming, best practices, etc., he actively participates in Open-Source, either as a committer to established projects or releasing his own code.

دیدگاه خود را بنویسید
نظرات کاربران (0 دیدگاه)
نظری وجود ندارد.
کتاب های مشابه
Java
467
97 Things Every Java Programmer Should Know
455,000 تومان
Java
671
OCP Oracle Certified Professional Java SE 17 Developer (Exam 1Z0-829) ...
2,679,000 تومان
Java
1,014
Data Structures and Algorithm Analysis in Java
1,020,000 تومان
Java
965
Beginning Programming with Java For Dummies
1,052,000 تومان
Java
1,695
Hands-On Design Patterns with Java
542,000 تومان
Java
982
Think Java
912,000 تومان
Java
948
Objects First with Java
1,177,000 تومان
Java
687
EJB 3 in Action
938,000 تومان
Java
956
Java Software Solutions
1,364,000 تومان
Java
996
Beginning Hibernate 6
705,000 تومان
قیمت
منصفانه
ارسال به
سراسر کشور
تضمین
کیفیت
پشتیبانی در
روزهای تعطیل
خرید امن
و آسان
آرشیو بزرگ
کتاب‌های تخصصی
هـر روز با بهتــرین و جــدیــدتـرین
کتاب های روز دنیا با ما همراه باشید
آدرس
پشتیبانی
مدیریت
ساعات پاسخگویی
درباره اسکای بوک
دسترسی های سریع
  • راهنمای خرید
  • راهنمای ارسال
  • سوالات متداول
  • قوانین و مقررات
  • وبلاگ
  • درباره ما
چاپ دیجیتال اسکای بوک. 2024-2022 ©