Используйте протоколы, а не сервисы: почему ваш код просится на диету

Совет, который спасёт вашу архитектуру от ожирения: замените жирные сервисы на стройные протоколы.
Представьте, что вы пришли в ресторан, а официант вместо меню приносит вам полную кухонную документацию: "Вот наш сервис доставки ингредиентов, вот сервис нарезки овощей..." Примерно так выглядит код, где вместо чётких протоколов общения — набор раздутых сервисов. Разработчик Not Not P (да, такой псевдоним) предлагает лечить эту архитектурную одышку.
Идея проста как грабли: договаривайтесь о формате данных и действиях (протокол), а не тащите в каждый угол целый сервис с его методами. Это как перейти от "я позвоню Васе, он передаст Пете" к простому "скинь JSON на порт 8080". Меньше посредников — меньше головной боли при деплое.
Конечно, мир полон hype-архитектур, где микросервисы плодятся как кролики. Но автор напоминает: если ваш сервис умеет только "getUser" и "saveUser", может, хватит его называть сервисом? Протокол с двумя операциями — это не сервис, это функция. А за функцию не стыдно, стыдно за 47 столбцов в JIRA ради этого.
Почему это работает
- Гибкость: протокол можно переиспользовать в разных сервисах, не переписывая каждый раз API.
- Тестируемость: проверить протокол проще, чем мокать целый сервис с его зависимостями.
- Эволюция: протокол живёт дольше, чем конкретная реализация — меняйте сервисы, не меняя контракт.
Комментарий студии METABYTE: Мы тоже любим стройные протоколы — они как чёткое ТЗ, только без лишних страниц. Если ваш проект начал напоминать слона в посудной лавке, maybe пора переходить на протокольную диету?