{"product_id":"grokking-simplicity-taming-complex-software-with-functional-thinking-9781617296208","title":"Grokking Simplicity: Taming Complex Software with Functional Thinking","description":"\u003cb\u003e\u003ci\u003eGrokking Simplicity\u003c\/i\u003e is a friendly, practical guide that will change the way you approach software design and development.\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003e\u003cb\u003eSummary\u003c\/b\u003e\u003cbr\u003e Distributed across servers, difficult to test, and resistant to modification--modern software is complex. \u003ci\u003eGrokking Simplicity\u003c\/i\u003e 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. \u003cp\u003e\u003c\/p\u003e Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. \u003cp\u003e\u003c\/p\u003e \u003cb\u003eAbout the technology\u003c\/b\u003e\u003cbr\u003e Developers rightly fear the unintended complexity that infects most code. This book shows you how to write software that keeps complexity close to its inherent minimum. As you write software you should distinguish between code that alters your system's state, and code that does not. Once you learn to make that distinction, you can refactor much of your state-altering \"actions\" into stateless \"calculations.\" Your software will be simpler. \u003cp\u003e\u003c\/p\u003e \u003cb\u003eAbout the book\u003c\/b\u003e\u003cbr\u003e The book also teaches you to solve the complex timing bugs that inevitably creep into asynchronous and multithreaded code. In ad­vanced sections of the book you learn how composable abstractions help avoid repeating code and open up new levels of expressivity. \u003cp\u003e\u003c\/p\u003e \u003cb\u003eWhat's inside\u003c\/b\u003e\u003cbr\u003e Patterns for simpler code\u003cbr\u003e Powerful time modeling approaches to simplify asynchronous code\u003cbr\u003e How higher-order functions can make code reusable and composable \u003cp\u003e\u003c\/p\u003e \u003cb\u003eAbout the reader\u003c\/b\u003e\u003cbr\u003e For intermediate and advanced developers building complex software. Exercises, illustrations, self-assessments, and hands-on examples lock in each new idea. \u003cp\u003e\u003c\/p\u003e \u003cb\u003eAbout the author\u003c\/b\u003e\u003cbr\u003e \u003cb\u003eEric Normand\u003c\/b\u003e is an expert software developer who has been an influential teacher of functional programming since 2007. \u003cp\u003e\u003c\/p\u003e \u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e 1 Welcome to Grokking Simplicity\u003cbr\u003e 2 Functional thinking in action\u003cbr\u003e PART 1 - ACTIONS, CALCULATIONS, AND DATA\u003cbr\u003e 3 Distinguishing actions, calculations, and data\u003cbr\u003e 4 Extracting calculations from actions\u003cbr\u003e 5 Improving the design of actions\u003cbr\u003e 6 Staying immutable in a mutable language\u003cbr\u003e 7 Staying immutable with untrusted code\u003cbr\u003e 8 Stratified design, part 1\u003cbr\u003e 9 Stratified design, part 2\u003cbr\u003e PART 2 - FIRST-CLASS ABSTRACTIONS\u003cbr\u003e 10 First-class functions, part 1\u003cbr\u003e 11 First-class functions, part 2\u003cbr\u003e 12 Functional iteration\u003cbr\u003e 13 Chaining functional tools\u003cbr\u003e 14 Functional tools for nested data\u003cbr\u003e 15 Isolating timelines\u003cbr\u003e 16 Sharing resources between timelines\u003cbr\u003e 17 Coordinating timelines\u003cbr\u003e 18 Reactive and onion architectures\u003cbr\u003e 19 The functional journey ahead\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eAbout the Author\u003c\/b\u003e\u003cbr\u003e\u003cb\u003eEric Normand\u003c\/b\u003e has 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.\u003cbr\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":50444254085394,"sku":"9781617296208","price":45.99,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0831\/4771\/8930\/files\/img_75370bd3-46f0-42dd-9c1e-22684d841401.jpg?v=1729677991","url":"https:\/\/surprise-castle.myshopify.com\/products\/grokking-simplicity-taming-complex-software-with-functional-thinking-9781617296208","provider":"Surprise Castle","version":"1.0","type":"link"}