img { https://github.com/zakirullin/cognitive-load/blob/main/img/smartauthorv14paper.png?raw=true } > The 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.