Mapping Between Boundaries
In the previous chapters, we discussed the web, application, domain, and persistence layers and what each of those layers contributes to implementing a use case.
We have, however, barely touched upon the dreaded and omnipresent topic of mapping between the models of each layer. I bet you have had a discussion at some point about whether to use the same model in two layers in order to avoid implementing a mapper.
The argument might have gone something like this:
Pro-Mapping Developer:
If we don't map between layers, we have to use the same model in both layers, which means that the layers will be tightly coupled.
Contra-Mapping Developer:
But if we do map between layers, we produce a lot of boilerplate code, which is overkill for many use cases, since they're only doing CRUD and have the same model across layers anyway.
As is often the case in discussions like this, there's truth to both sides of the argument. Let's...