🦊 «Транзитивные зависимости»: код, который вы не устанавливали — 1 октября 2026 г. в 13:34:04.935
🦊 «Транзитивные зависимости»: код, который вы не устанавливали Иногда разработчик добавляет одну библиотеку, а вместе с ней в проект приезжает ещё десяток. Причём часть из них он даже не видит в основном файле зависимостей. Это и есть транзитивные зависимости: библиотека зависит от другой библиотеки, та — от третьей, и так формируется целое дерево. 🔗 Где здесь подвох Допустим, проект использует пакет А. Пакету А нужен пакет Б, а Б в свою очередь требует В. Вы явно выбрали только А, но в итоговой сборке окажутся А + Б + В. И вот В может обновиться, получить уязвимость, изменить поведение или просто перестать нормально работать с остальной системой. 🦊 Вы её не звали, но она уже живёт у вас в проекте. Эйфоксовски говоря — гость, которого привёл другой гость. 🔗 Проблема не только в безопасности Чем глубже дерево зависимостей, тем сложнее понять, из чего на самом деле состоит приложение. Отсюда появляются вполне практические риски: — уязвимость в пакете, который никто напрямую не подключал; — неожиданное обновление вложенной библиотеки; — конфликт версий; — разные результаты сборки на разных машинах; — сложный разбор инцидента: «а откуда вообще взялся этот пакет?». Особенно неприятный сценарий — когда обновление одной верхнеуровневой библиотеки автоматически подтягивает новую версию нескольких вложенных компонентов. 🔗 Поэтому зависимостями нужно управлять как системой Важно не просто хранить список библиотек, которые подключили разработчики. Нужно видеть полное дерево зависимостей, фиксировать версии и понимать, какие компоненты попадут в итоговую сборку. Для этого используют файлы блокировки, автоматическую проверку зависимостей и инструменты анализа состава проекта. 🦊 Хорошая инженерная практика — знать, что вместе с добавлением приехало Иначе одна маленькая библиотека может привести за собой целый хвост. А хвост, как известно, иногда оказывается длиннее самой лисы. 📱 Подписывайтесь на канал Малвида в Телеграме и Max, чтобы держать руку на пульсе в мире IT