Cognitive load
minds.md/zakirullin/cognitiveThe best components are those that provide powerful functionality yet have simple interface.
Do not add layers of abstractions for the sake of an architecture. Add them whenever you need an extension point that is justified for practical reasons.