Веб-версияОткрыть в Telegram

Пост😄Почему мы стараемся минимизировать сторонние зависимости?

19 декабря 2025
S
Sergio Petrov
Фотография
нажмите — покажем
😄Почему мы стараемся минимизировать сторонние зависимости? Интеграция сторонней библиотеки часто кажется спасением: 10 минут вместо нескольких спринтов самостоятельной разработки. Но за этим стоят множественные скрытые риски. Разработчики часто идут на это из-за жёстких дедлайнов, сложности задачи или давления бизнеса и не всегда задумываются о долгосрочных последствиях 😖Основной недостаток на наш взгляд - это зависимость от maintainers библиотеки (vendor lock), из-за чего зачастую следуют: 🔺 Новые неожиданные баги с обновлениями версии Xcode или версии языка 🔺 Неопределенность с поддержкой - библиотеку запросто могут забросить и вы останетесь 1 на 1 с ней, формируя техдолг Помимо обозначенных рисков есть еще и другие неудобства: 🔺 Сложности с "выпиливанием" библиотеки (опыт Dodo с Realm) 🔺 Увеличение размера бинарника 🔺 Ожидания стабильного релиза после очередных "подарков" от Apple 🔺 Конфликты с другими зависимостями 🔺 Сложность отладки - не видно stack trace в исходниках библиотеки 🤔 С другой стороны, не всегда получается продать бизнесу идею разработки своего решения, особенно в быстрорастущих сегментах рынка и в условиях сильной конкуренции Нужен компромисс. В нашей практике необходимость сторонней зависимости оценивается на публичных техзащитах, в рамках которых разработчики анализируют новые фичи и пользовательские пути. Наши требования к самой библиотеке и ее интеграции, если будет доказана её важность, звучат так: 1️⃣ Необходимо владеть критическими частями кода, основной логикой, не отдавать флоу в "чужие руки" 2️⃣ Влияние зависимости на размер и скорость приложения должно быть контролируемым 3️⃣ Maintainers - надежные и проверенных сообществом, "живость" репозитория 4️⃣ Обращаем внимание на лицензию. Если зависимость критически важна и у нас недостаточно ресурса на разработку своего решения, то крайне желательно иметь возможность "форкнуть" и "причесать" под свои нужды в будущем в рамках техдолга 💎 Вместо итогов Мне понравилась цитата из свежей статьи на Medium: Если ты не контролируешь код, тогда код контролирует тебя Имхо, со сторонними зависимостями это справедливо вдвойне, тк даже не вы написали этот код и зачастую вы его даже не видите в отладке Думайте критически, подходите к проекту осознанно и не отпускайте все на автопилот 💫 #iOS #SoftwareArchitecture #Dependencies #TechDebt 👏
3 · 256 ·

Рядом в ленте

EEgor Mezhin😏 SwiftUI: почему Group всё ещё считается вредным Почитал интересную статью от Two Cent Studios про контейнер Group в SUI – и она очень точно формулирует проблеVVlad Tkachenko😄 Мифы о совершенной архитектуре Многие команды внедряют достаточно сложные архитектуры (VIPER, Clean Architecture), которые признаны неким стандартом, но котор
это сообщение
KKirill Smirnov😒 Claude Code + XcodeBuildMCP + xcodemake. Попытка сделать быстрые инкрементальные билды для AI, рядом с xcodebuild. Как это работает: xcodemake сначала прогоняSSergio Petrov😄ARC, что внутри? Казалось бы, тема пройдена вдоль и поперек, однако на технических интервью я периодически встречаю недопонимание принципов работы ARC даже у о
YYDC — Pizza Powered iOSYDC — Pizza Powered iOS@YoungDaCode · канал · Технологии
243подписчиков150постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем