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