Pull to refresh

Comments 4

Представьте себе какую-нибудь стороннюю библиотеку вроде Sentry или Crashlytics на 800 Мб. При очистке кэшей каждый раз приходится сидеть и ждать, пока она скачается из интернета. Вместо этого мы ее сохраним себе, и при работе кода библиотека будет подтягиваться с компьютера, что сильно сэкономит время.

Сколько свободного места занимает такой проект на диске локально?

Привет. Столько, сколько весит кодовая база приложения и всех депенденсов, которые положили локально. Мы готовы пожертвовать местом на диске в угоду скорости резолва зависимостей в хкоде. Особенно учитывая, что это происходит достаточно часто

Спрашиваю, потому что я сталкивался с такими проблемами на крупных проектах:

  • проект настолько огромный, что через Xcode взаимодействовать с ним нереально. Из-за этого программистам приходится работать через текстовые редакторы и консоль. Кроме того без внешних накопителей нельзя выкачать проект второй раз (в пк не хватает объема ssd) - иногда бывает нужно для сравнения двух версий

  • проект сам по себе небольшой, но с большими сторонними sdk (например, рекламными). Если сохранять это все просто в git, то вы почти всегда сможете выкачать из него рабочую версию, но размер такого репозитория быстро растет

Мы не храним сторонние библиотеки в репозитории с проектом — они подключаются только на локальной машине. В git попадает чистый проект с внешними зависимостями.

Обычно мы добавляем одну и ту же зависимость и как локальную, и как удалённую. В таргете всегда указываем ремоут, а локал нужен лишь для удобства разработки: так быстрее резолвятся зависимости и проще править код прямо в проекте.

На CI/CD все локальные подключения убираются, происходит "честная" сборка с удалёнными зависимостями. Это позволяет сразу отловить забытые изменения — они всплывают на этапе merge request.

Такой подход даёт гибкость: можно временно подключить нужный пакет локально, поработать с ним, потом убрать — не влияя на чистоту основной сборки.

Да, если зависимостей становится слишком много и они занимают ощутимый объём, есть смысл хранить их на внешнем накопителе — это решает проблему с ограниченным местом на диске.

Sign up to leave a comment.

Information

Website
www.mts.ru
Registered
Founded
Employees
over 10,000 employees
Location
Россия