SOLID простыми словами
S -Single Responsibility Principle (Принцип единственной ответственности)
Один объект решает только одну задачу, а не несколько.
Плохо: Структура User умеет и хранить данные, и сохранять их в БД.
Хорошо: User хранит данные, UserRepository занимается сохранением.

O -Open/Closed Principle (Принцип открытости/закрытости)
Классы открыты для расширения но закрыты для модификации, весь новый функционал это наследование от текущего класса (в рамках разумного).
Суть: Мы добавляем новый функционал, не меняя старый код, а расширяя его через интерфейсы.

L -Liskov Substitution Principle (Принцип подстановки Лисков)