56 books like Function and Reactive Domain Modeling

By Debasish Ghosh,

Here are 56 books that Function and Reactive Domain Modeling fans have personally recommended if you like Function and Reactive Domain Modeling. Shepherd is a community of 11,000+ authors and super readers sharing their favorite books with the world.

Shepherd is reader supported. When you buy books, we may earn an affiliate commission.

Book cover of Domain-Driven Design: Tackling Complexity in the Heart of Software

Alexander Granin Author Of Functional Design and Architecture

From my list on domain modeling.

Why am I passionate about this?

If someone had told me during my early professional years that I would become a strong advocate for functional programming and the author of a fundamental book on functional software engineering, I would have found it hard to believe. Was functional programming truly worth dedicating my life to? However, once I experienced the sheer beauty of functional programming, there was no turning back. I delved deep into Haskell and functional C++, and began writing articles, giving talks, and developing various technologies. I realized that I possessed a truly unique perspective on approaching software engineering in functional languages, and that there was a significant knowledge gap that needed to be filled for the benefit of all.

Alexander's book list on domain modeling

Alexander Granin Why did Alexander love this book?

My journey in the world of software development has been arduous and challenging.

One of the common struggles we all face is the overwhelming number of solutions available, making it impossible to fully grasp everything at a deep level.

Just when I thought I had mastered an approach and felt competent in it, a new shiny approach would emerge, demanding my immediate attention. It often felt like a never-ending race to keep up with the ever-evolving field.

This constant pursuit of staying relevant as a software engineer can be frustrating, as it feels like we are always lagging behind the rapidly advancing world. I discovered that knowledge of specific technologies, frameworks, or libraries does not easily transfer across different technology stacks. They are too specific and lack universality. It was then that I turned my focus to more general principles of software engineering.

I realized that there are fundamental engineering…

By Eric Evans,

Why should I read it?

2 authors picked Domain-Driven Design as one of their favorite books, and they share why you should read it.

What is this book about?

Incorporate effective domain modeling into the software development process

Software design thought leader and founder of Domain Language, Eric Evans, provides a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining system design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software modeling and development.

Domain Model: Part I outlines the goals of domain-driven development, defines terms, and gives an overview of the implications of using the…


Book cover of Domain-Specific Languages

Alexander Granin Author Of Functional Design and Architecture

From my list on domain modeling.

Why am I passionate about this?

If someone had told me during my early professional years that I would become a strong advocate for functional programming and the author of a fundamental book on functional software engineering, I would have found it hard to believe. Was functional programming truly worth dedicating my life to? However, once I experienced the sheer beauty of functional programming, there was no turning back. I delved deep into Haskell and functional C++, and began writing articles, giving talks, and developing various technologies. I realized that I possessed a truly unique perspective on approaching software engineering in functional languages, and that there was a significant knowledge gap that needed to be filled for the benefit of all.

Alexander's book list on domain modeling

Alexander Granin Why did Alexander love this book?

It was a wonderful time when I first embarked on my programming journey.

I felt an immense sense of power over computers and had countless ideas on how programming could improve my life and the lives of others. Everything seemed within reach, and I approached the world of programming with great enthusiasm in the early 2000s.

However, reality hit me like a cold shower when I started delving into actual software development. I quickly realized that it was far more challenging than just writing code.

Each programming language and technology had its hidden complexities and treacherous pitfalls. Every domain was rife with intricate nuances that had to be understood before attempting to develop software within it. I soon discovered that there was no such thing as a "perfect solution" that could be universally applied.

As I ventured into working with real-world domains, I confronted the daunting task of addressing the…

By Martin Fowler,

Why should I read it?

1 author picked Domain-Specific Languages as one of their favorite books, and they share why you should read it.

What is this book about?

When carefully selected and used, Domain-Specific Languages (DSLs) may simplify complex code, promote effective communication with customers, improve productivity, and unclog development bottlenecks. In Domain-Specific Languages, noted software development expert Martin Fowler first provides the information software professionals need to decide if and when to utilize DSLs. Then, where DSLs prove suitable, Fowler presents effective techniques for building them, and guides software engineers in choosing the right approaches for their applications.

This book's techniques may be utilized with most modern object-oriented languages; the author provides numerous examples in Java and C#, as well as selected examples in Ruby. Wherever possible,…


Book cover of Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#

Enrico Buonanno Author Of Functional Programming in C#

From my list on to learn to think like a functional programmer.

Why am I passionate about this?

I'm a programmer with a desire to constantly learn and improve. I have many years of experience in writing mission-critical software in highly event-driven areas such as FinTech and online auctions. Through interesting and challenging projects, I've always been fascinated by trying to generalize and abstract what it is that makes good code; so things like design patterns and best practices were just up my street. As I expanded this personal research, I found that functional programming provided many interesting techniques, but that many professionals in the industry were unaware of them. This is why I decided to show these techniques and their benefits to a wider audience through my book Functional Programming in C#.

Enrico's book list on to learn to think like a functional programmer

Enrico Buonanno Why did Enrico love this book?

Many functional programming books concentrate on the detail of functional techniques (things like recursion or higher-order functions), often leaving open the gap between these techniques and their concrete application to solve everyday programming tasks.

This was one of the reasons I wrote my book, and one source of inspiration for me was the work of F# evangelist Scott Wlashin.

For many years, Scott has been showing how he applies functional thinking in his daily practice centered around e-commerce, through blog posts on his popular site and his talks at programming conferences. At popular request, he's organized these ideas into his book Domain Modelling Made Functional.

The examples are practical enough that every business application programmer will be able to relate to them, and his explanation of functional programming techniques and ideas is clear and rigorous. Although Scott encourages the adoption of F# (the functional-first language of the .NET family), these…

By Scott Wlaschin,

Why should I read it?

2 authors picked Domain Modeling Made Functional as one of their favorite books, and they share why you should read it.

What is this book about?

You want increased customer satisfaction, faster development cycles, and less wasted work. Domain-driven design (DDD) combined with functional programming is the innovative combo that will get you there. In this pragmatic, down-to-earth guide, you'll see how applying the core principles of functional programming can result in software designs that model real-world requirements both elegantly and concisely - often more so than an object-oriented approach. Practical examples in the open-source F# functional language, and examples from familiar business domains, show you how to apply these techniques to build software that is business-focused, flexible, and high quality. Domain-driven design is a well-established…


Book cover of Refactoring: Improving the Design of Existing Code

Federico Kereki Author Of Mastering JavaScript Functional Programming: Write clean, robust, and maintainable web and server code using functional JavaScript and TypeScript

From my list on the theory and practice of computer programming.

Why am I passionate about this?

I have been working with computers for decades now – having started with programmable handheld calculators and working my way up and down through mainframes, mini- and micro-computers. I always thought there is an art to writing software, and that good software can be read and admired. Maintainability, readability, and testability are some core needs for software, and after going through many programming paradigms, I feel that functional programming (FP) is the way to go – and several modern web frameworks agree. JavaScript (and now, TypeScript) are essential to web development, and I wanted to show how FP could be successfully used with those languages, and thus my book.

Federico's book list on the theory and practice of computer programming

Federico Kereki Why did Federico love this book?

This book is different from the others I recommended, because its focus is not really on creating algorithms, but rather on how to improve code with a systematic process, keeping functionality but enhancing quality.

The author shows several practical techniques that he applies to real-world problems and empower you to elevate your code's quality and adapt it seamlessly to changing needs. It's not just about writing code; it's about becoming a more effective and confident developer.

I consider this book a companion on the journey to mastering the craft of coding. With it, you’ll always be able to achieve higher-quality code, no matter the original version of the code.

By Martin Fowler,

Why should I read it?

2 authors picked Refactoring as one of their favorite books, and they share why you should read it.

What is this book about?

Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. This book offers a thorough discussion of the principles of refactoring, including where to spot opportunities for refactoring, and how to set up the required tests. There is also a catalog of more than 40 proven refactorings with details as to when and why to use…


Book cover of Head First Git: A Learner's Guide to Understanding Git from the Inside Out

Jeanne Boyarsky Author Of OCP Oracle Certified Professional Java SE 17 Developer Study Guide: Exam 1Z0-829

From my list on becoming a better Java developer.

Why am I passionate about this?

I’ve always enjoyed mentoring folks whether new or experienced in programming. Whether it is teaching an intern or a high school robotics student, or onboarding an experienced Java developer, it brings me joy to see people learn. I also love to read. Being able to recommend some of my favorite books can help even more people absorb all of this information.

Jeanne's book list on becoming a better Java developer

Jeanne Boyarsky Why did Jeanne love this book?

Head First books are always fun. They know how to engage your brain and have cartoons/puzzles.

I recommend this book whether you are first learning git or have used it for some time. Understanding git is a big deal so you can work efficiently. Without having to keep deleting the repository and starting over!

By Raju Ghandi,

Why should I read it?

1 author picked Head First Git as one of their favorite books, and they share why you should read it.

What is this book about?

What will you learn from this book?

Many people who use Git rely on "recipes"--copying and pasting commands they find on the internet without really understanding how Git actually works. But what do you do if you find yourself in a tight spot? You can't simply wing it. With this unique hands-on guide, you'll learn the ways of Git and have fun while doing it. Raju Gandhi peels back the layers to reveal the simple yet powerful engine that powers Git, so you'll understand not just the how but the why. You'll master branches, merges, commit messages, search, utilities, and…


Book cover of Facts and Fallacies of Software Engineering

Karl Wiegers Author Of Software Development Pearls: Lessons from Fifty Years of Software Experience

From my list on lessons about software development.

Why am I passionate about this?

I first learned to program in college in 1970. Since then I’ve spent much time as a software developer, manager, tester, process improvement leader, consultant, trainer, author, and, of course, a user. I quickly learned that I didn’t have time to make all the mistakes that every software developer before me had already made. My training and writing career has involved sharing what I and others have learned with audiences to help them quickly become more effective software development team members, regardless of their project role. This book distills insights and observations both from my own experience and from what I’ve heard from thousands of students and consulting clients.

Karl's book list on lessons about software development

Karl Wiegers Why did Karl love this book?

Robert Glass is one of the foundational leaders of the discipline of software engineering. He’s done it all and seen it all. This book includes 55 facts and 10 fallacies about many aspects of software engineering, grouped into the major categories of management, the life cycle, and quality. Based on my own experience, I can vouch for the validity of all the points Glass makes.

These timeless truths can help you avoid going down an ineffective path, wasting time only to rediscover the same facts on your own. There’s no need to retrace the missteps from the past. Books like this can keep your energies focused where they will provide the most value to your customers.

By Robert L. Glass,

Why should I read it?

1 author picked Facts and Fallacies of Software Engineering as one of their favorite books, and they share why you should read it.

What is this book about?

The practice of building software is a "new kid on the block" technology. Though it may not seem this way for those who have been in the field for most of their careers, in the overall scheme of professions, software builders are relative "newbies."


In the short history of the software field, a lot of facts have been identified, and a lot of fallacies promulgated. Those facts and fallacies are what this book is about.

There's a problem with those facts-and, as you might imagine, those fallacies. Many of these fundamentally important facts are learned by a software engineer, but…


Book cover of Software Tools in Pascal

Arnold Robbins Author Of Linux Programming by Example

From my list on for learning the Zen of Unix.

Why am I passionate about this?

I am a professional software developer and technical author, with a number of books published by O’Reilly and Prentice Hall. I have been working in the C / C++ / Unix / Linux world for over four decades. I am also the maintainer of the Free Software Foundation’s GNU Awk interpreter for the awk programming language. I have a passion for writing clear, correct, efficient, and portable code, and for applying the UNIX and Software Tools principles in my development. I hope that this book list will help you climb the learning curve of doing great Unix / Linux development.

Arnold's book list on for learning the Zen of Unix

Arnold Robbins Why did Arnold love this book?

This book (an update to Software Tools by the same authors) codifies and instructs the principles by which the Unix / Linux toolset was designed. It emphasizes clear, robust code, and the building of tools, reusable, general purpose software components that can be hooked together to solve many kinds of programming and data management tasks. The lessons it teaches are timeless, and the current generation of programmers would be well served to try and learn them.

The original Software Tools was perhaps the single most influential software book that I ever read. It taught me how to think with the Unix mindset, how to make the best use of what the Unix system (and now Linux) offers, and how to focus on readability and maintainability in my own software.

By Brian Kernighan, P.J. Plauger,

Why should I read it?

1 author picked Software Tools in Pascal as one of their favorite books, and they share why you should read it.

What is this book about?

With the same style and clarity that characterized their highly acclaimed The Elements of Programming Style and Software Tools, the authors have written Software Tools in Pascal to teach how to write good Pascal programs that make good tools. The programs contained in the book are not artificial, but are actual tools that have proved valuable in the production of other programs. Structured programming and top-down design are emphasized and applied to every program, as are principles of sound design, testing, efficiency, and portability. All of the programs are complete and have been tested directly from the text. The programs…


Book cover of The Science of Programming

Federico Kereki Author Of Mastering JavaScript Functional Programming: Write clean, robust, and maintainable web and server code using functional JavaScript and TypeScript

From my list on the theory and practice of computer programming.

Why am I passionate about this?

I have been working with computers for decades now – having started with programmable handheld calculators and working my way up and down through mainframes, mini- and micro-computers. I always thought there is an art to writing software, and that good software can be read and admired. Maintainability, readability, and testability are some core needs for software, and after going through many programming paradigms, I feel that functional programming (FP) is the way to go – and several modern web frameworks agree. JavaScript (and now, TypeScript) are essential to web development, and I wanted to show how FP could be successfully used with those languages, and thus my book.

Federico's book list on the theory and practice of computer programming

Federico Kereki Why did Federico love this book?

This book is essential in that it follows a systematic and scientific approach to software development, advocating for clarity in expressing algorithms, providing a rigorous framework for designing and reasoning about programs, and, fundamentally, always focusing on formal methods and mathematical techniques to ensure correctness and efficiency in programming code.

Most importantly, the book doesn’t just show you how to prove programs correct, but also teaches how to arrive from a definition to an efficient and correct solution, so I would recommend this to every developer.


By David Gries,

Why should I read it?

1 author picked The Science of Programming as one of their favorite books, and they share why you should read it.

What is this book about?

Describes basic programming principles and their step-by-
step applications.Numerous examples are included.


Book cover of Managing Humans: Biting and Humorous Tales of a Software Engineering Manager

Jaime Buelta Author Of Python Automation Cookbook

From my list on for Python and non-Python developers.

Why am I passionate about this?

Since I was a kid, I’ve been passionate about technology and had a clear vocation to work with computers. I’ve been a developer for more than 20 years now, spending half of them mainly in the Python environment, and I’ve always been interested in improving my skills. While it’s true that software development is a field that changes constantly and technology evolves at great speed, there are some elements that remain relatively unchanged and can be used to compound knowledge and ability. In particular, the elements that are closer to the human element, teamwork, coordination, etc. are quite stable over time.

Jaime's book list on for Python and non-Python developers

Jaime Buelta Why did Jaime love this book?

Michael Lopp, or Rands, as he is commonly known online, has been sharing his knowledge as a software manager for years, mainly through his blog. He is one of the most insightful voices about the art of management in a software environment, and even if you are not a manager yourself (and don’t want to become one), will make you understand and better collaborate with your own manager, and be ready when you need to lead a team or understand how it is to work with other humans.

By Michael Lopp,

Why should I read it?

1 author picked Managing Humans as one of their favorite books, and they share why you should read it.

What is this book about?

Managing Humans is a selection of the best essays from Michael Lopp's popular website Rands in Repose(www.randsinrepose.com). Lopp is one of the most sought-after IT managers in Silicon Valley, and draws on his experiences at Apple, Netscape, Symantec, and Borland. This book reveals a variety of different approaches for creating innovative, happy development teams. It covers handling conflict, managing wildly differing personality types, infusing innovation into insane product schedules, and figuring out how to build lasting and useful engineering culture. The essays are biting, hilarious, and always informative.


Book cover of Designing Secure Software: A Guide for Developers

Adam Shostack Author Of Threat Modeling: Designing for Security

From my list on application security for builders.

Why am I passionate about this?

Being able to understand and change reality through our knowledge and skill is literal magic. We’re building systems with so many exciting and unexpected properties that can be exploited and repurposed for both good and evil. I want to keep some of that magic and help people engineer – build great systems that make people’s lives better. I’ve been securing (and breaking) systems, from operating rooms to spaceships, from banks to self-driving cars for over 25 years. The biggest lesson I’ve learned is that if security is not infused from the start, we’re forced to rely on what ought to be our last lines of defense. This list helps you infuse security into your systems.

Adam's book list on application security for builders

Adam Shostack Why did Adam love this book?

Loren’s been contributing to security for over 40 years, and this book captures his hard-won wisdom in a way that’s both humble and accessible. It scales from principles and design approaches to in-depth explanations of exactly how things go wrong and how to avoid those problems. (Also, I was honored to write the foreword.)

By Loren Kohnfelder,

Why should I read it?

1 author picked Designing Secure Software as one of their favorite books, and they share why you should read it.

What is this book about?

Designing Secure Software consolidates Loren Kohnfelder's more than twenty years of experience into a concise, elegant guide to improving the security of technology products. Written for a wide range of software professionals, it emphasizes building security into software design early and involving the entire team in the process. The book begins with a discussion of core concepts. The second part, perhaps this book's most important contribution, covers the process of designing and reviewing a software design with security considerations in mind. The final section details the most common coding flaws that create vulnerabilities, making copious use of code snippets written…


5 book lists we think you will like!

Interested in software engineering, object-oriented programming, and software?

11,000+ authors have recommended their favorite books and what they love about them. Browse their picks for the best books about software engineering, object-oriented programming, and software.

Software Engineering Explore 25 books about software engineering
Object-Oriented Programming Explore 19 books about object-oriented programming
Software Explore 56 books about software