私は、異なる名前空間間に循環依存関係があるいくつかのClojureコードに取り組んでおり、それらを解決するための最良の方法を見つけようとしています。
- 基本的な問題は、ファイルの1つで「そのような変数はありません:名前空間/関数名」エラーが発生することです
- 関数を「宣言」しようとしましたが、「存在しない修飾変数を参照できません」と文句を言います。
- もちろん、コードベース全体をリファクタリングすることもできますが、解決する依存関係があるたびにそれを行うのは非現実的です.....循環依存関係の特定のネットワークでは非常に醜くなる可能性があります
- たくさんのインターフェース/プロトコル/宣言を別のファイルに分けて、すべてにそれを参照させることができます....しかし、それは厄介になり、関連する機能をグループ化した現在の素晴らしいモジュラー構造を台無しにするようです一緒
何かご意見は?Clojureでこの種の循環依存を処理するための最良の方法は何ですか?