SOLID в Go. Как применяют.

Ответ

S - один класс/тип одна ответственность; в Go маленькие интерфейсы и пакеты. O - открыт для расширения, закрыт для изменения; интерфейсы и внедрение зависимостей. L - подтипы заменяемы; в Go нет наследования, но интерфейсы должны быть реализуемы так, чтобы клиент не зависел от конкретной реализации. I - узкие интерфейсы (io.Reader, io.Writer). D - зависимость от абстракций (интерфейсов), не от конкретных типов.

type UserRepository interface { GetByID(ctx context.Context, id int64) (*User, error) }
type Service struct { repo UserRepository }
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.