С набросом на SOLID не согласен. Его просто переврали все кому не лень и теперь хаят. C "Clean architecture" все встает на места.
Вот к примеру, если в плюсах у типа нет возможности копирования (например, это сокет или файл), его нельзя поставить в вектор. Вот просто физически нельзя, потому что в векторе испоььзуется копирование. И мне не надо учить какой-нибудь "Clean stl" чтобы не делать этого: я физически не смогу это сделать. Точка.