The refactored sales order processing module
As with Chapter 3, Curing Anemic Models with Domain-Driven Design, I have already completed the sales order processing module's refactor within the -incomplete
bookstore app code base. I won't share all of the code for it here as it follows the same approach that we used for Book
. If you want to see what I did for that module, you can check out the code within the -incomplete
code folder.
There are a couple of things to call out within this module though. The first one is how the pre-create validation works for the creation of a new SalesOrder
. In Chapter 2, Simplifying Concurrent Programming with Actors, we refactored the creation process to use an FSM. In Chapter 3, Curing Anemic Models with Domain-Driven Design, we plugged those FSM steps into the new entity logic as part of the creating state. I was able to do this because I wrote the state handling logic for the base-entity actor code. So, I was able to write it in such a way that I could...