98просмотров
23.3%от подписчиков
17 ноября 2025 г.
📷 ФотоScore: 108
🔌 Интеграции = слепое пятно Есть одна вещь в backend-разработке, которая ломает релизы чаще, чем баги. Это интеграции со сторонними сервисами. И тесты здесь часто создают ложное чувство безопасности. Берём простой пример: есть ваше приложение A, и нужно интегрироваться с каким-то сервисом B через API.
И вот тут начинается самое интересное… ❓В чём проблема? Лучше всего эта проблема видна не в теории, а в живых проектах. Расскажу на примере стартапа «Зов Буревестника» (#call_petrel).
По началу мы с коллегой собирали всё в режиме «тяп-ляп и MVP». Как в притче про двух волков — победил тот, которого мы кормили. Для бизнеса — супер: быстро собрали, проверили гипотезу, прилетели первые клиенты. Но с точки зрения разработки — это ад.
Трогаешь код здесь — отваливается что-то там.
Плюс добавьте сторонние интеграции — и после MVP каждый релиз превращается в угадайку: сломается или нет? В итоге я психанул: написал пачку тестов на самые "важные" места, допилил CI/CD, чтобы тесты запускались сразу после сборки. Пока не прошли — образ в репозиторий не летит. И что вы думаете?
Релизы стали проходить как по маслу. Я даже подумал, что локальные тесты — панацея. Как же я ошибался…😅 Со временем я понял, что все интеграции условно делятся на два типа. 🟦 Кейс 1. Интеграция с устоявшимся продуктом Если сервис B стабильный, релизы по плану, а не по гороскопу («звёзды, придётся откатывать релиз?») - локальных тестов обычно хватает.
Ты кормишь белого волка, и всё ок: разработка идёт спокойно, стабильность высокая. 🟥 Кейс 2. Интеграция с сырым продуктом Но если сервис B развивается параллельно с вами — начинаются приключения.
Такое часто бывает в больших системах. Например, вы делаете сервис приёма заявок, а рядом пилят кастомное хранилище документов. Главная проблема в таких кейсах:
Пользователь видит ошибку → разработчик пытается понять, у кого она.
И начинается бесконечный футбол: ⚽️ «это у вас», «нет, у вас». Но самое неприятное — тесты тут не спасают. Потому что в тестах мы мокаем поведение сервиса и закладываем то, как он “должен” работать. Локальные тесты прошли → выпускаешь релиз → всё падает.
И ты сидишь, смотришь в лог, и думаешь: «Как так? Я же всё проверил!» Вывод: Вот почему я говорю: Интеграция = слепое пятно. Интеграции — это слепое пятно не потому, что мы плохо пишем код.
А потому что мы тестируем то, как система должна работать,
а не то, как она ломается в реальности. В следующий раз разберу, какие подходы действительно помогают
снизить боль от интеграций — не в теории, а на практике. 😉 #DevDeepDive #MyDevAdventure