{"product_id":"functional-design","title":"Functional Design","description":"\u003cp\u003e\u003cstrong\u003eA Practical Guide to Better, Cleaner Code with Functional Programming\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eIn \u003cem\u003e\u003cstrong\u003eFunctional Design\u003c\/strong\u003e\u003c\/em\u003e, renowned software engineer Robert C. Martin (\"Uncle Bob\") explains how and why to use functional programming to build better systems for real customers. Martin compares conventional object-oriented coding structures in Java to those enabled by functional languages, identifies the best roles for each, and shows how to build better systems by judiciously using them in context.\u003c\/p\u003e \u003cp\u003eMartin''s approach is pragmatic, minimizing theory in favor of \"in the-trenches\" problem-solving. Through accessible examples, working developers will discover how the easy-to-learn, semantically rich Clojure language can help them improve code cleanliness, design, discipline, and outcomes. Martin examines well-known SOLID principles and Gang of Four Design Patterns from a functional perspective, revealing why patterns remain extremely valuable to functional programmers, and how to use them to achieve superior results.\u003c\/p\u003e \u003cul\u003e  \u003cli\u003eUnderstand functional basics: immutability, persistent data, recursion, iteration, laziness, and statefulness\u003c\/li\u003e  \u003cli\u003eContrast functional and object approaches through expertly crafted case studies\u003c\/li\u003e  \u003cli\u003eExplore functional design techniques for data flow\u003c\/li\u003e  \u003cli\u003eUse classic SOLID principles to write better Clojure code\u003c\/li\u003e  \u003cli\u003eMaster pragmatic approaches to functional testing, GUIs, and concurrency\u003c\/li\u003e  \u003cli\u003eMake the most of design patterns in functional environments\u003c\/li\u003e  \u003cli\u003eWalk through building an enterprise-class Clojure application\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003e\"Functional Design\u003cem\u003e exudes ''classic-on-arrival''. Bob pulls back the curtain to reveal how functional programming elements make software design simple yet pragmatic. He does so without alienating experienced object-oriented programmers coming from languages like C#, C++, or Java.\"\u003c\/em\u003e\u003cbr\u003e--Janet A. Carr, Independent Clojure Consultant\u003c\/p\u003e \u003cp\u003e\u003cem\u003eRegister your book for convenient access to downloads, updates, and\/or corrections as they become available. See inside book for details.\u003c\/em\u003e\u003c\/p\u003e","brand":"MediaPlace","offers":[{"title":"Default Title","offer_id":57305791070590,"sku":"NW9780138176396","price":32.9,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1379\/1261\/files\/9780138176396.jpg?v=1778518433","url":"https:\/\/mediaplace.com\/products\/functional-design","provider":"MediaPlace","version":"1.0","type":"link"}