Вступить в клуб →
сложнаявопросАрхитектура, тесты и релиз

Модули Catalog и Checkout ссылаются друг на друга: SPM не собирает цикл

Монолит режут на модули через Swift Package Manager. Из модуля Catalog открывают экран оформления из Checkout, а Checkout после успешной оплаты возвращает пользователя в карточку товара из Catalog. Прямые импорты в обе стороны дают циклическую зависимость, и сборка падает.

Как правильно разорвать цикл?

  • Вынести контракты — протоколы, доменные модели, события — в отдельный общий модуль
  • Объединить Catalog и Checkout обратно в один модуль: взаимные переходы между экранами неизбежны
  • Оставить в Checkout прямой импорт Catalog, а обратный переход делать через NotificationCenter — так зависимость исчезнет
  • Собрать оба модуля как динамические фреймворки: для них циклические зависимости разрешены

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела