{"product_id":"grokking-simplicity","title":"Grokking Simplicity","description":"\u003cdiv class=\"product-section\" style=\"color: rgb(51,51,51);text-transform: none;text-indent: 0.0px;letter-spacing: normal;font-size: 17.25px;font-style: normal;font-weight: 300;word-spacing: 0.0px;white-space: normal;orphans: 2;widows: 2;background-color: rgb(255,255,255);\"\u003e  \u003cdiv class=\"description-body\" style=\"text-align: left;margin-bottom: 21.0px;\"\u003e   Distributed across servers, difficult to test, and resistant to modification—modern software is complex.   \u003cspan\u003e \u003c\/span\u003e   \u003ci style=\"\"\u003eGrokking Simplicity\u003c\/i\u003e   \u003cspan\u003e \u003c\/span\u003eis 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.   \u003cbr style=\"\"\u003e   \u003cbr style=\"\"\u003eAvailable in PDF (ePub, kindle, and liveBook formats coming soon).  \u003c\/div\u003e \u003c\/div\u003e \u003cdiv style=\"color: rgb(51,51,51);text-transform: none;text-indent: 0.0px;letter-spacing: normal;font-size: 17.25px;font-style: normal;font-weight: 300;word-spacing: 0.0px;white-space: normal;orphans: 2;widows: 2;background-color: rgb(255,255,255);\"\u003e  \u003ch2 style=\"color: inherit;text-transform: lowercase;line-height: 1.1;font-size: 27.0px;font-weight: 300;margin-top: 42.0px;margin-bottom: 10.5px;\"\u003eabout the technology\u003c\/h2\u003eEven 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.  \u003cspan\u003e \u003c\/span\u003e  \u003ci style=\"\"\u003eGrokking Simplicity\u003c\/i\u003e  \u003cspan\u003e \u003c\/span\u003elays 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. \u003c\/div\u003e \u003cdiv style=\"color: rgb(51,51,51);text-transform: none;text-indent: 0.0px;letter-spacing: normal;font-size: 17.25px;font-style: normal;font-weight: 300;word-spacing: 0.0px;white-space: normal;orphans: 2;widows: 2;background-color: rgb(255,255,255);\"\u003e  \u003ch2 style=\"color: inherit;text-transform: lowercase;line-height: 1.1;font-size: 27.0px;font-weight: 300;margin-top: 42.0px;margin-bottom: 10.5px;\"\u003eabout the book\u003c\/h2\u003eIn  \u003cspan\u003e \u003c\/span\u003e  \u003ci style=\"\"\u003eGrokking Simplicity\u003c\/i\u003e, 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  \u003cspan\u003e \u003c\/span\u003e  \u003cb style=\"font-weight: bold;\"\u003eEric Normand\u003c\/b\u003e  \u003cspan\u003e \u003c\/span\u003eguides 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. \u003c\/div\u003e \u003cdiv style=\"color: rgb(51,51,51);text-transform: none;text-indent: 0.0px;letter-spacing: normal;font-size: 17.25px;font-style: normal;font-weight: 300;word-spacing: 0.0px;white-space: normal;orphans: 2;widows: 2;background-color: rgb(255,255,255);\"\u003e    \u003c\/div\u003e \u003cdiv style=\"color: rgb(51,51,51);text-transform: none;text-indent: 0.0px;letter-spacing: normal;font-size: 17.25px;font-style: normal;font-weight: 300;word-spacing: 0.0px;white-space: normal;orphans: 2;widows: 2;background-color: rgb(255,255,255);\"\u003e  \u003cdiv style=\"color: rgb(51,51,51);text-transform: none;text-indent: 0.0px;letter-spacing: normal;font-size: 17.25px;font-style: normal;font-weight: 300;word-spacing: 0.0px;white-space: normal;orphans: 2;widows: 2;background-color: rgb(255,255,255);\"\u003e   \u003ch2 style=\"color: inherit;text-transform: lowercase;line-height: 1.1;font-size: 27.0px;font-weight: 300;margin-top: 42.0px;margin-bottom: 10.5px;\"\u003ewhat''s inside\u003c\/h2\u003e   \u003cul style=\"margin-top: 0.0px;margin-bottom: 10.5px;\"\u003e    \u003cli style=\"\"\u003eApply functional programming principles to reduce codebase complexity\u003c\/li\u003e    \u003cli style=\"\"\u003eWork with data transformation pipelines for code that’s easier to test and reuse\u003c\/li\u003e    \u003cli style=\"\"\u003eTools for modeling time to simplify asynchrony\u003c\/li\u003e    \u003cli style=\"\"\u003e60 exercises and 100 questions to test your knowledge\u003c\/li\u003e   \u003c\/ul\u003e  \u003c\/div\u003e  \u003cdiv style=\"color: rgb(51,51,51);text-transform: none;text-indent: 0.0px;letter-spacing: normal;font-size: 17.25px;font-style: normal;font-weight: 300;word-spacing: 0.0px;white-space: normal;orphans: 2;widows: 2;background-color: rgb(255,255,255);\"\u003e   \u003ch2 style=\"color: inherit;text-transform: lowercase;line-height: 1.1;font-size: 27.0px;font-weight: 300;margin-top: 42.0px;margin-bottom: 10.5px;\"\u003eabout the reader\u003c\/h2\u003eFor experienced programmers. Examples are in JavaScript.  \u003c\/div\u003e  \u003cdiv style=\"color: rgb(51,51,51);text-transform: none;text-indent: 0.0px;letter-spacing: normal;font-size: 17.25px;font-style: normal;font-weight: 300;word-spacing: 0.0px;white-space: normal;orphans: 2;widows: 2;background-color: rgb(255,255,255);\"\u003e   \u003ch2 style=\"color: inherit;text-transform: lowercase;line-height: 1.1;font-size: 27.0px;font-weight: 300;margin-top: 42.0px;margin-bottom: 10.5px;\"\u003eabout the author\u003c\/h2\u003e   \u003cb style=\"font-weight: bold;\"\u003eEric Normand\u003c\/b\u003e   \u003cspan\u003e \u003c\/span\u003ehas been a functional programmer since 2001 and has been teaching functional programming online and in person since 2007. Visit LispCast.com to see more of his credentials.  \u003c\/div\u003e \u003c\/div\u003e","brand":"MediaPlace","offers":[{"title":"Default Title","offer_id":57307687846270,"sku":"NW9781617296208","price":40.34,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1379\/1261\/files\/9781617296208.jpg?v=1778712605","url":"https:\/\/mediaplace.com\/products\/grokking-simplicity","provider":"MediaPlace","version":"1.0","type":"link"}