…but not a lighter solution:
The package structure alone is enough to give anybody who’s worked with over-architected “enterprise grade solutions” a giggle, or at least a grim chuckle.
Anticipation is the enemy of appropriate solutions. I think that it’s often more harmful to do premature abstraction and optimization than it is to do them after they’re needed. It is – as with so many software design decisions – a judgement call based on everything that you know about the project. A brilliant developer I used to work with (John Heintz) expressed it as a rule of thumb:
- Make it work.
- Make it right.
- Make it fast.
Agile development means cycling through each of these phases, doing each of them as they’re needed and not one iteration before if you can help it.