So, the time has come. After huge piece of theoretical knowledge the time has come to equip you with some special weapons. It means playing closer to the code using classes or structures close-to-class provided by the programming language of your choice. My choice will be Python which is a default tool on this site. Please remember that your language may not support all features Python has, but I’m sure you will find a proper corresponding definitions.
It is highly possible that during actual coding some new facts will come to light. But don’t you worry, it’s quite common that Strategic phase will not uncover all important details. If it happens, you can take step back and repeat the process on unexplored parts of Domain. The great thing about DDD is that you can re-iterate exploration until you come up with a right model. With this in hand, writing the code is a breeze.
Building Blocks
Tactical DDD provides you a special set of so-called building blocks, a collection of classes and patterns helping you implement your complex system. You may wonder if this is feasible to skip strategy in favour of going straight to the tactics. It is, you can do whatever you want, but mind that these two come together, and they complement each other. You won’t be able to utilize DDD fully without proper modeling and, as a consequence, final result may be a huge disaster. Who needs a program which doesn’t help one’s business but makes it harder to run? Answer is quite obvious.
Summary
Ok, no more talking - now it’s time for some action. Let’s make our hands little dirty and go through all significant parts of Tactical Domain-Driven Design with some coding included.