To get the most out of this book
This book is designed to be a practical guide for mastering DDD and applying its principles in real-world scenarios. Whether you’re new to DDD or have some prior experience, this book provides a structured approach to help you navigate the complexities of modern software development. At the time of writing this book, all the code was tested with .NET 8 running under Docker Desktop for Windows version 4.36.
Software/hardware covered in the book |
Operating system requirements |
Docker |
Windows, macOS, or Linux |
C# |
Windows, macOS, or Linux |
RabbitMQ |
Windows, macOS, or Linux |
Kurrent (formerly EventStoreDB) |
Windows, macOS, or Linux |
Download the example code files
The code bundle for the book is hosted on GitHub at https://github.com/PacktPublishing/Domain-driven-Refactoring/branches. We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing. Check them out!
Download the color images
We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: https://packt.link/gbp/9781835885949.
Conventions used
There are a number of text conventions used throughout this book.
CodeInText
: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. For example: “A possible implementation, again using SalesOrderCreated
with the added IsReseller
property, could be as follows.”
A block of code is set as follows:
public class DiscountService {
public decimal CalculateDiscount(SalesOrder order) {
if (order.Discount == null) {
return 0;
}
var result = //… do some calculations…
return result
}
}
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
namespace BrewUp.Sales.Acl;
public sealed class AvailabilityUpdatedForNotificationEventHandler(ILoggerFactory loggerFactory, IServiceBus serviceBus) : IntegrationEventHandlerAsync <AvailabilityUpdatedForNotification>(loggerFactory)
Bold: Indicates a new term, an important word, or words that you see on the screen. For instance, words in menus or dialog boxes appear in the text like this. For example: “One of the first tools we would like to introduce to you is the Cynefin framework.”
Warnings or important notes appear like this.
Tips and tricks appear like this.