

Buy anything from 5,000+ international stores. One checkout price. No surprise fees. Join 2M+ shoppers on Desertcart.
Desertcart purchases this item on your behalf and handles shipping, customs, and support to Morocco.
Design patterns and architectures for building production quality applications using functional programming. Functional Design and Architecture is a pioneering guide to software engineering using Haskell and other functional languages. In it, you’ll discover Functional Declarative Design and other design principles perfect for working in Haskell, PureScript, F#, and Scala. In Functional Design and Architecture you will learn: • Designing production applications in statically typed functional languages such as Haskell • Controlling code complexity with functional interfaces • Architectures, subsystems, and services for functional languages • Developing concurrent frameworks and multithreaded applications • Domain-driven design using free monads and other functional tools • Property-based, integrational, functional, unit, and automatic whitebox testing Functional Design and Architecture lays out a comprehensive and complete approach to software design that utilizes the powerful and fascinating ideas of functional programming. Its examples are in Haskell, but its universal principles can be put into practice with any functional programming language. Inside, you’ll find cutting-edge functional design principles and practices for every stage of application development, from architecting your application through to running simple and maintainable tests. Purchase of the print book includes a free eBook in PDF and ePub formats from Manning Publications. About the technology Functional programming affects every aspect of software development, from how you write individual lines of code to the way you organize your applications and data. In fact, many standard OO patterns are unsuitable or unnecessary for FP applications. This book will reorient your thinking to align software design with a functional programming style. The examples are in Haskell, but the ideas are universal. About the book Functional Design and Architecture teaches you how to design software following the unique principles of functional programming. You’ll explore FP-first paradigms like Functional Declarative Design by building interesting applications, including a fun spaceship control simulator and a full-fledged backend framework. This is an opinionated book and you may disagree on some points. But we guarantee it will make you think in a fresh way about how you design software. What's inside • Control code complexity with functional interfaces • Architectures, subsystems, and services for functional languages • Domain-driven design using free monads • Property-based and automatic whitebox testing • Recalibrate OO designs for functional environments About the reader For experienced developers who know a functional language. About the author Alexander Granin is a senior software engineer and architect with more than 15 years of experience. He is an international speaker, researcher, and book author. The technical editor on this book was Arnaud Bailly . Table of Contents Part 1 1 What is software design? 2 The basics of functional declarative design Part 2 3 Drafting the MVP application 4 End-to-end design Part 3 5 Embedded domain-specific languages 6 Domain modeling with free monads Part 4 7 Stateful applications 8 Reactive applications Part 5 9 Concurrent application framework 10 Foundational subsystems 11 Persistence: Key–value databases 12 Persistence: Relational databases 13 Error handling and dependency inversion 14 Business logic design 15 Testing A Plenty of monads B Stacking monads with monad transformers C Word statistics example with monad transformers D Automatic white-box testing Review: Excellent advice on functional design! - I love this book, it fills in all the gaps I had in design knowledge coming from a web development background. Finally taking the jump from writing mostly-imperative TypeScript to using a declarative approach with Haskell! The physical book itself is nice, no complaints. The editing is good, the subject matter is good, and the examples are very helpful. 10/10 would recommend! Review: Excellent functional programming introduction for imperative programmers - This is a great bridge book to get into functional programming for people who have been programming in imperative languages. Prior to reading this book I had tried to get into haskell multiple times, but the subject matter always seemed too alien and academic. Because the book contains multiple examples showing first how a problem might be solved in imperative languages and then shows functional approaches to the same problem, I found it very helpful to get the functional point of view. Authors experience working in industry also shows because the examples picked are well representative of problems you run into the trenches of working as a programmer in an industrial setting.





| Best Sellers Rank | #2,392,518 in Books ( See Top 100 in Books ) #653 in Computer Systems Analysis & Design (Books) #815 in Software Testing #2,650 in Software Development (Books) |
| Customer Reviews | 3.0 out of 5 stars 5 Reviews |
A**N
Excellent advice on functional design!
I love this book, it fills in all the gaps I had in design knowledge coming from a web development background. Finally taking the jump from writing mostly-imperative TypeScript to using a declarative approach with Haskell! The physical book itself is nice, no complaints. The editing is good, the subject matter is good, and the examples are very helpful. 10/10 would recommend!
D**R
Excellent functional programming introduction for imperative programmers
This is a great bridge book to get into functional programming for people who have been programming in imperative languages. Prior to reading this book I had tried to get into haskell multiple times, but the subject matter always seemed too alien and academic. Because the book contains multiple examples showing first how a problem might be solved in imperative languages and then shows functional approaches to the same problem, I found it very helpful to get the functional point of view. Authors experience working in industry also shows because the examples picked are well representative of problems you run into the trenches of working as a programmer in an industrial setting.
N**A
Le livre a été reçu avec une couverture abîmée et des pages froissées.
G**R
Good content, needs serious editing
I really want to love this book, because it brings together and integrates many aspects of functional programming at a high level. But man, I find it hard to read. It's very rambling and doesn't get to the point. The prose needs an aggressive editor to make a pass over it. I waited years for this to come out, and now I guess I can't wait for the next edition.
P**K
LLM generated content, by an author who does not know the subject domain
This is a book obviously generated with heavy use of some LLM by an author that obviously has no real world experience. I am also questioning if he has basic knowledge of the subject domain. It is full of platidudes and cliches and because it is easier to copy stuff from object oriented literature directly or via an LLM, he gives examples with Java class diagramms. One is eager to see functional programming related stuff and continues the painful reading, only to be faced with monads etc. My initial reaction, was let's see if I can finally understand monads in the context of a real world example. Again content copied by LLMs. It is literally the worst technical book I have ever bought. I really regret it.
Trustpilot
5 days ago
2 months ago