I’m thrilled to announce the next era of my book Functional Design and Architecture! It’s getting the second edition at Manning Publications, and we’ve already launched the MEAP program:
As this program just started, there is a coupon code with a 50% discount: mlgranin. It will be active till the 29th of July.
You might have heard of my book before. It’s a fundamental book on building real applications in Haskell with a systematic approach, namely - Software Design. It’s a pioneering work describing a new field - Software Engineering in Functional Programming, a discipline that didn’t exist before. There were different takes on that including books, articles, and talks, but my book is the first comprehensive source that also has my own approaches and methodologies. Here, I’m proposing a counterpart to Object-Oriented Design, a methodology I call Functional Declarative Design and Hierarchical Free Monads as a way to implement it.
But this is really an inaccurate description: my book has that, and much more than that. If you’re wondering how to build applications in Haskell, how to do interfaces and Inversion of Control, what are the design principles, what are the architectures (FT/mtl, ReaderT, Service Handle, Free monads etc), what are the approaches to concurrency and state, how to implement different subsystems (SQL DBs, KV DBs, logging, etc.), how to do functional, integration, whitebox, greybox, unit testing, and other things, - it’s all there. And it’s not just distinct facts and tricks, but rather a consistent, very practical methodology of doing things. Yes, it’s a very dense book.
What’s else important: we believe that this book is useful for other functional languages such as PureScript, Scala, F#, Elm, OCaml. Not just Haskell! My goal is to make Functional Programming a discipline to watch and use in industry, and having best practices is definitely a must.
I finished this book last year and even produced a printed version of it. It was the first edition. I was selling it via LeanPub. Today, I retired the book from selling because of the second edition. (It’s 100% done, and if you don’t want to wait for the second edition, you can get a copy from me directly; email me and we’ll find a way to do this.)
It will be a bit different in its structure, style, and content. It will be less wordy, less philosophical. There will be new chapters, and sections, new approaches, and ideas I left for later. The surface of Software Design in Haskell is really vast. I’m happy to be the first who provides a comprehensive picture of it for Haskellers and other functional developers.
You can read more on my book on its page.
Don’t hesitate to ask questions, I’ll be glad to answer.