Learning Domain Driven Design