Understand the concept of Domain-driven design and build two DDD systems from scratch that can be showcased as part of your portfolio

Key Features

  • Explore Domain-driven design as a timeless concept and learn how to apply it with Go
  • Build a domain-driven monolithic application and a microservice from scratch
  • Leverage patterns to make systems scalable, resilient, and maintainable

Book Description

Domain-driven design (DDD) is one of the most sought-after skills in the industry. This book provides you with step-by-step explanations of essential concepts and practical examples that will see you introducing DDD in your Go projects in no time. Domain-Driven Design with Golang starts by helping you gain a basic understanding of DDD, and then covers all the important patterns, such as bounded context, ubiquitous language, and aggregates. The latter half of the book deals with the real-world implementation of DDD patterns and teaches you how to build two systems while applying DDD principles, which will be a valuable addition to your portfolio. Finally, you'll find out how to build a microservice, along with learning how DDD-based microservices can be part of a greater distributed system. Although the focus of this book is Golang, by the end of this book you'll be able to confidently use DDD patterns outside of Go and apply them to other languages and even distributed systems.

What you will learn

  • Get to grips with domains and the evolution of Domain-driven design
  • Work with stakeholders to manage complex business needs
  • Gain a clear understanding of bounded context, services, and value objects
  • Get up and running with aggregates, factories, repositories, and services
  • Find out how to apply DDD to monolithic applications and microservices
  • Discover how to implement DDD patterns on distributed systems
  • Understand how Test-driven development and Behavior-driven development can work with DDD

Who this book is for

This book is for intermediate-level Go developers who are looking to ensure that they not only write maintainable code, but also deliver great business value. If you have a basic understanding of Go and are interested in learning about Domain-driven design, or you've explored Domain-driven design before but never in the context of Go, then this book will be helpful.

Table of Contents

  1. Domain-Driven Design with Golang
  2. Contributors
  3. About the author
  4. About the reviewers
  5. Preface
  6. Part 1: Introduction to Domain-Driven Design
  7. Chapter 1: A Brief History of Domain-Driven Design
  8. Chapter 2: Understanding Domains, Ubiquitous Language, and Bounded Contexts
  9. Chapter 3: Entities, Value Objects, and Aggregates
  10. Chapter 4: Exploring Factories, Repositories, and Services
  11. Part 2: Real -World Domain-Driven Design with Golang
  12. Chapter 5: Applying Domain-Driven Design to a Monolithic Application
  13. Chapter 6: Building a Microservice Using DDD
  14. Chapter 7: DDD for Distributed Systems
  15. Chapter 8: TDD, BDD, and DDD
  16. Index
  17. Other Books You May Enjoy