Делаю проект на архитектуре: controller ->service (use case) -> repository
Пытаясь следовать SOLID делаю для сервисов и репозиториев интерфейсы.
Однако в самой разработке это довольно мешает:
1) Нельзя быстро перейти на класс в IDE нажав на метод (переходит на interface, п.с. знаю можно прописать @var).
2) Банально больше кода за счет файлов интерфейсов.
3) На 95% уверен, что не будет массового жонглирования реализациями. Если вообще будет.
И вот назревает вопрос, а стоит ли? Если когда-то нужно будет сделать декоратор, жонглировать реализациями и т.д. - то просто отрефаторить и ввести интерфейс и опять же - только там, где он нужен.
Сейчас же у меня интерфейс ради интерфейса, усложение кода ради усложения. Принцип Kiss плачет в сторонке.
Любая архитектура это прежде всего здравый смысл и вас под дулом пистолета никто не заставляет её делать. Если в вашем проекте интерфейсы мешают, не используйте их. Я думаю за это еще не сажают.
Думается что "Принцип разделения интерфейсов" (а скорее всего вы говорите об этом, раз упоминаете SOLID
) не подразумевает писать интерфейс под каждый сервис. Интерфейсы вы пишете по мере необходимости, а не потому что SOLID
существует I
.
И вот назревает вопрос, а стоит ли?
Конечно же не стоит.
Если когда-то нужно будет сделать декоратор, жонглировать реализациями и т.д. - то просто отрефаторить и ввести интерфейс и опять же - только там, где он нужен.
Все верно, там где нужен.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Получаем список товаров https://onlinemoysklad
Необходимо ограничить папку, в которой может производить операции PHP код (в данном случае у одного сервера несколько владельцев)
Я хочу опредеить массив в 1 классе, а перебрать его методом map и вывести в другом классе1 класс