Как ускорить сборку проекта и не остановить разработку — Сергей Ерохин, Тинькофф

YOUTUBE · 18.11.2025 19:31

Ключевые темы и таймкоды

Проблема долгой сборки проекта

0:03
  • В видео обсуждается проблема долгой сборки проекта, с которой сталкиваются многие разработчики.
  • Решение проблемы заключается в использовании билд-кэша, который позволяет ускорить сборку проекта, заменяя исходный код на предкомпилированные фреймворки.

Демонстрация использования коко-поц для сборки билд-кэша

2:18
  • В видео демонстрируется использование коко-поц для создания билд-кэша в проекте тинькофф бизнес.
  • Коко-поц - это стандартный инструмент для работы с зависимостями, который позволяет легко и бесшовно интегрировать билд-кэш в проект.

Преимущества использования билд-кэша

5:52
  • Использование билд-кэша упрощает процесс сборки проекта, делает его более портабельным и ускоряет разработку.
  • Билд-кэш также позволяет использовать артефакты сборки в любом проекте и на любой поддерживаемой платформе.

Создание и использование фреймворков

7:12
  • В видео объясняется, как создавать и использовать фреймворки в проекте.
  • Фреймворки могут быть собраны для разных целевых платформ и поддерживаемых аппаратных архитектур.

Процесс публикации фреймворков

10:46
  • В видео описывается процесс публикации фреймворков, который включает в себя сборку фреймворков, их запаковку и загрузку в файловое хранилище.
  • После этого модифицируется исходная подспека и она загружается в подспек-репозиторий для дальнейшего использования.

Создание предкомпилированного фреймворка

12:23
  • Создание нового проекта и добавление зависимостей
  • Создание инструмента для преобразования модулей в формат фреймворка
  • Создание фреймворка и загрузка его в хранилище

Трансформация подспеки

14:44
  • Замена источника на артефакты сборки фреймворка
  • Удаление ненужного исходного кода и целевых платформ
  • Запись файла в нужное место

Интеграция и версионирование

18:34
  • Замена стандартного подспек репозитория на приватный
  • Выполнение команд для загрузки подспеки и артефактов сборки фреймворка
  • Применение предкомпилированного фреймворка для зависимостей

Обратная совместимость и семантическое версионирование

20:38
  • Три типа версий: патч, минор и мажор
  • Использование инструментов для анализа изменений и определения характера изменений
  • Автоматизация проверок с помощью специализированных инструментов

Ограничения при использовании приборка

26:46
  • Приборка имеет фиксированный тип ликовки, условную компиляцию, тестирование непубличного интерфейса, статический тип линковки и использование атрибутов для оптимизации производительности.
  • Важно избегать одноименных публичных типов с модулями и использовать автоматику для проверки совместимости.

Пример использования приборка в проекте

33:41
  • В проекте используется централизованный инструмент на базе репозитория в гетлабе для публикации сторонних модулей.
  • Собственный код проверяется на обратную совместимость перед релизом с использованием автоматизированной системы.

Результаты оптимизации

35:57
  • Сокращение размера свифт кодовой базы более чем в два раза, исчезновение легаси в виде исходного кода и сокращение времени холодной сборки в два раза.