Что такое circular dependency?

Middle
457 просмотров
AFK Offer AI

Circular dependency — когда пакет A импортирует B, а B импортирует A. Go запрещает это на уровне компилятора — не скомпилируется. Это заставляет думать об архитектуре. Типичный случай: user пакет зависит от order, а order зависит от user. Решения: вынести общие типы в третий пакет (domain), использовать интерфейсы (dependency inversion), объединить пакеты если они сильно связаны. Circular dependency — сигнал что границы пакетов проведены неправильно.

Следующий вопрос

Задача: реализуйте worker pool — N горутин обрабатывают задачи из канала