Я работаю над некоторым кодом Clojure, который имеет некоторые круговые зависимости между разными пространствами имен, и я пытаюсь найти наилучший способ их решения.
- Основная проблема заключается в том, что я получаю ошибку "Нет такого var: namespace/functionname" в одном из файлов
- Я попытался "объявить" эту функцию, но потом она жалуется: "Нельзя ссылаться на квалифицированный var, который не существует"
- Я мог бы, конечно, реорганизовать всю кодовую базу, но это кажется непрактичным делать каждый раз, когда у вас есть зависимость для решения..... и может быть очень уродливым для определенных сетей круговых зависимостей.
- Я мог бы выделить кучу интерфейсов/протоколов/деклараций в отдельный файл и все это ссылается на это.... но похоже, что это закончит тем, что станет беспорядочным и испортит текущую хорошую модульную структуру, которая у меня есть связанные функциональные возможности, сгруппированные вместе.
Любые мысли? Каков наилучший способ обработки такого рода циклической зависимости в Clojure?