Clever systems age badly when nobody can read them
There is a kind of technical decision that looks elegant in isolation and becomes expensive the moment a second person needs to change it. We try to be suspicious of that feeling.
What we mean by context
In architecture, context is the information a collaborator needs in order to move safely:
- what problem this layer is responsible for
- what assumptions it is allowed to make
- what neighboring parts depend on it
If that picture is unclear, the implementation can be perfectly dry and still be hard to maintain.
The trade we usually choose
We are often willing to accept a little more repetition in exchange for boundaries that are easier to understand. We are often willing to name something more plainly than strictly necessary. We are almost always willing to document why a pattern exists before we generalize it.
Those choices are not anti-engineering. They are what let a product stay understandable while it grows.