Distributed across servers, difficult to test, and resistant to modification-modern software is complex. Grokking Simplicity is a friendly, practical guide that will change the way you approach software design and development. It introduces a unique approach to functional programming that explains why certain features of software are prone to complexity, and teaches you the functional techniques you can use to simplify these systems so that they're easier to test and debug.
Available in PDF (ePub, kindle, and liveBook formats coming soon).
Available in PDF (ePub, kindle, and liveBook formats coming soon).
about the technology
Even experienced developers struggle with software systems that sprawl across distributed servers and APIs, are filled with redundant code, and are difficult to reliably test and modify. Adopting ways of thinking derived from functional programming can help you design and refactor your codebase in ways that reduce complexity, rather than encouraging it. Grokking Simplicity lays out how to use functional programming in a professional environment to write a codebase that's easier to test and reuse, has fewer bugs, and is better at handling the asynchronous nature of distributed systems.about the book
In Grokking Simplicity, you'll learn techniques and, more importantly, a mindset that will help you tackle common problems that arise when software gets complex. Veteran functional programmer Eric Normand guides you to a crystal-clear understanding of why certain features of modern software are so prone to complexity and introduces you to the functional techniques you can use to simplify these systems so that they're easier to read, test, and debug. Through hands-on examples, exercises, and numerous self-assessments, you'll learn to organize your code for maximum reusability and internalize methods to keep unwanted complexity out of your codebase. Regardless of the language you're using, the ways of thinking in this book will help recognize problematic code and tame even the most complex software.what's inside
- Apply functional programming principles to reduce codebase complexity
- Work with data transformation pipelines for code that's easier to test and reuse
- Tools for modeling time to simplify asynchrony
- 60 exercises and 100 questions to test your knowledge