TGViewer
devmark_ru devmark_ru @devmark_ru · 224 subscribers
Post #112 265
Другой инсайт, который возник у меня на Joker 2024 во время обмена опытом с коллегами. Уже довольно давно при создании репозиториев (если это не JPA), и сервисов в Spring, я всегда выделяю интерфейс. Даже если у него всего одна реализация.

Почему?
1. Потому что я так привык
2. В любой книге про паттерны вы встретите фразу о том, что "программировать надо на уровне интерфейсов, а не реализаций"
3. Если сервис занимает несколько экранов, бывает удобно посмотреть весь его публичный API на одном экране, просто зайдя в интерфейс.

Но есть и минусы:
1. Файлов становится в 2 раза больше без изменения функциональности.
2. Неудобная навигация в IDE (2 клика для перехода к реализации вместо одного).
3. Когда у нас нет интерфейса, Spring'у чуть проще находить бины.

Ну и я задумался, всегда ли эти плюсы перевешивают эти минусы? Например, навигацию приходится делать гораздо чаще, чем смотреть API целиком. Может, пришла пора пересмотреть практику обязательного выделения интерфейса?

А как принято делать у вас в команде?
  • 👍 9
More from @devmark_ru
  1. Sep 7, 2026Новый этап автоматизации SDLC от Dockhost! Спустя 3 месяца после появления LLM инференса н…
  2. Jul 16, 2026OpenIDE представила свой клиент для базы данных! На днях вышла новая версия OpenIDE Pro, в…
  3. Jun 30, 2026Channel photo updated
  4. Jun 26, 2026"Товарищ Сталин, что вы курите?" В процессе "общения" с LLM вспомнился один старый номер и…
  5. Jun 15, 2026Вышел стабильный релиз Spring AI 2.0 Чуть больше года назад появился Spring AI версии 1.0,…
  6. May 29, 2026Ваш персональный ChatGPT от Dockhost Продолжаю серию постов про альтернативные LLM, которы…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →