Обновить

Комментарии 4

Думаю, надо сперва понять, что такое Repository и чем отличается от DAO или Storage в контексте приложения. И, возможно, будет более понятно, как использовать слой, отвечающий для работы с хранением данных.

Вопрос не в том, нужен ли сам слой репозиторий, а в том, нужен ли дополнительный, помимо сгенерированного sqlc.

Какой смысл оценивать нужность какого-то подхода именно через SOLID? Это набор правил с довольно размытой формулировкой, которые применяются очень ситуативно.

модуль должен делать что-то одно

Вроде как сообщество пришло к консенсусу, что SRP про то, что у класса должна быть одна причина для изменений. А мы опять почему-то возвращаемся к определению десятилетней давности.

Ну вот сделали вы ради соблюдения SRP условный UserRepository. Спустя какое-то время там будет целая пачка методов (Create, Update, Delete и пр.). Это явно нарушает ваш SRP, потому что теперь класс не делает что-то одно. Волнует ли это кого-то в сообществе? Практически никого. Почему здесь мы вдруг обязаны опираться на SRP?

Каким образом вы натянули принцип подстановки Барбары-Лисков на язык без "полноценного" наследования, я вообще не понял.

Сдается мне под, говоря про SRP вы имеете ввиду ISP. Поскольку SRP про то, за что отвечает модуль/класс

А LSP как раз про гранулярность интерфейсов.что любая функция, принимающая интерфейс, должна корректно работать с любым объектом, реализующим его. Ну нет в го полноценного наследования, что ж, делаем интерфейсы специфичнее (см ISP).

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации