DataMappers like Doctrine2 help us a lot to persist data. Yet many projects are still struggling with tough questions: - Where to put business logic? - How to prevent our code from abuse? - Where to put queries, and how test them? It’s time to look beyond the old Gang of Four design patterns. There are Value Objects, Entities and Aggregates at the core; Repositories for persistence; Specifications
![Unbreakable Domain Models - DPC13](https://cdn-ak-scissors.b.st-hatena.com/image/square/a07a1cf141f5992149db928417749a6f6432b84e/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F8602db40b1960130ce53020d9c5b6362%2Fslide_0.jpg%3F1584509)