Mastering JavaScript Functional Programming: Write clean, robust, and maintainable web and server code using functional JavaScript and TypeScript
, Third Edition
Apply functional programming concepts and techniques to everyday JavaScript or TypeScript programming
Master functional programming in JavaScript and TypeScript to solve real-world development problems
Apply functional programming to get better testable programs with higher modularity and reusability
Description
Functional programming is a programming paradigm that uses functions for developing software. This book is filled with examples that enable you to leverage the latest JavaScript and TypeScript versions to produce modern and clean code, as well as teach you to how apply functional programming techniques to develop more efficient algorithms, write more concise code, and simplify unit testing.
This book provides comprehensive coverage of the major topics in functional programming to produce shorter, clearer, and testable programs. You’ll begin by getting to grips with writing and testing pure functions, reducing side effects, as well as other key features to make your applications functional in nature. The book specifically explores techniques to simplify coding, apply recursion, perform high-level coding, learn ways to achieve immutability, implement design patterns, and work with data types.
By the end of this book, you’ll have developed the practical programming skills needed to confidently enhance your applications by adding functional programming to wherever it’s most suitable.
Who is this book for?
If you are a JavaScript or TypeScript developer looking to enhance your programming skills, then this book is for you. The book applies to both frontend developers working with frameworks such as React, Vue, or Angular as well as backend developers using Node.js or Deno.
What you will learn
Understand when to use functional programming versus classic object-oriented programming
Use declarative coding instead of imperative coding for clearer, more understandable code
Know how to avoid side effects and create more reliable code with closures and immutable data
Use recursion to help design and implement more understandable solutions to complex problems
Define functional programing data types with or without TypeScript, add type checking, and implement immutability
Apply advanced containers to get better structures to tackle errors and implement async programming
After reading Mastering JavaScript Functional Programming by Federico Kereki, I came away with a much deeper knowledge of functional JavaScript than I had previously.Admittedly, I had a cursory knowledge of functional techniques in JavaScript and have read other texts on the subject, so I was not truly comfortable using them in a professional setting.Kereki's examples are not only clear and easy-to-understand, but he also provides numerous approaches one could take before showing the best example. This is really helpful, because code is so subjective and often is easy to settle on one approach, thinking it is the best one until you see an even better one in the next paragraph! I love seeing this as it feels like you've unlocked something new and you can easily compare the best version to the other versions to see exactly why it is better.Another aspect I like about this book is that it puts a strong emphasis on testing the examples provided using Jest. This is very practical since Jest is a leading testing tool in the JavaScript world and will give one valuable experience if they have never dealt with testing frameworks before. In addition, there are many examples showing how to test pure and impure functions and how to deal with the differences.Besides being a strong test on functional approaches in JavaScript, the author sprinkles in some nice history behind JavaScript and other programming languages that provide a nice backstory to how we got here today. This makes the book both informative and fun to read.Declarative programming has been a hot topic for several years in the JavaScript world (mostly due to React) and this book covers it in great detail with very practical examples. I really appreciate that as the term is thrown around a fair bit by people, but rarely specified as clearly.There is a lot to cover in writing good, clean functional code and I think that Mastering JavaScript Functional Programming provides something for everyone at every level. The examples in this book should serve one for several years as it takes time to fully absorb and apply these concepts to real-world scenarios.I commend Federico Kereki for a terrific 3rd edition and look forward to reading more of his work in the future.
Amazon Verified review
matthew eldredgeMay 15, 2023
5
"Mastering JavaScript Functional Programming" is an exceptional book that provides a comprehensive guide to mastering functional programming in JavaScript. As an experienced JavaScript developer, I found this book to be an invaluable resource for advancing my skills and understanding of functional programming concepts.The author's approach to explaining complex concepts is clear, concise, and beginner-friendly. Each chapter builds upon the previous one, gradually introducing advanced topics and demonstrating practical examples along the way. The book strikes a perfect balance between theory and hands-on exercises, making it easy to grasp the core concepts of functional programming and apply them to real-world scenarios.One of the highlights of this book is its focus on writing clean, robust, and maintainable code. The author emphasizes the importance of immutability, pure functions, and higher-order functions, guiding readers toward writing easier code to reason about, test, and debug. The code examples provided are well-explained and illustrate best practices for structuring functional JavaScript code.Additionally, the book covers a wide range of functional programming techniques, including currying, composition, recursion, and monads. These topics are explained in a practical and approachable manner, allowing readers to gain a deep understanding of their applications and benefits.The book is excellently structured, with each chapter building upon the previous one seamlessly. The writing style is engaging, and the content is presented in a logical and organized manner, making it easy to follow and digest.In conclusion, "Mastering JavaScript Functional Programming" is a must-read for JavaScript developers who want to unlock the power of functional programming. Whether you are a beginner or an experienced developer, this book will undoubtedly enhance your understanding of functional programming concepts and help you write cleaner, more maintainable code. I highly recommend it to anyone seeking to level up their JavaScript skills and embrace functional programming paradigms.
Amazon Verified review
Peter J. JonasMay 05, 2023
5
A fascinating, well-written book. Although you need to experience in programming to follow, it starts at the beginning and builds up, giving you all the knowledge you need to understand and then master functional programming. Easy to read, like an enchanting fiction book.This book uses TypeScript a lot, so if you have no experience with that, it can be challenging to understand everything. Still, this is an excellent (I rate it five stars despite that) book on this topic, worth its price; just be aware of it and think through it before buying it.Then buy it. You have to know TypeScript anyway.
Amazon Verified review
MajdmMay 17, 2023
5
This book has been truly helpful for me. The author's knowledge and passion were really good. This book made complex ideas easy to understand like immutability and lazy evaluation, giving me the confidence to embrace functional programming. The practical examples and code snippets helped my understanding and changed the way I code. If you want to move to more senior level in your JavaScript programming or learn more in depth about javascript, this book is a must-read.
Federico Kereki is a Uruguayan Systems Engineer, with a Master's degree in Education, and over 30 years of experience as a consultant, system developer, and writer. Currently a Subject Matter Expert at Globant, he has taught at Universidad de la República, Universidad ORT Uruguay, and Universidad de la Empresa. He has written articles and booklets on programming, web development, security, and open source topics for blogs, magazines, and websites. He has also written several books, including Modern JavaScript Web Development Cookbook and the upcoming Data Structures and Algorithms in JavaScript. He resides, works, and teaches in Uruguay, but he wrote the first edition of this book while working in India, and the second edition during a sojourn in Mexico.
Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.
If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.
Please Note: Packt eBooks are non-returnable and non-refundable.
Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:
You may make copies of your eBook for your own use onto any machine
You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website?
If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:
Register on our website using your email address and the password.
Search for the title by name or ISBN using the search option.
Select the title you want to purchase.
Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title.
Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook?
If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
To view your account details or to download a new copy of the book go to www.packtpub.com/account
Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.
You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.
What are the benefits of eBooks?
You can get the information you need immediately
You can easily take them with you on a laptop
You can download them an unlimited number of times
You can print them out
They are copy-paste enabled
They are searchable
There is no password protection
They are lower price than print
They save resources and space
What is an eBook?
Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.
When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.
For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.