私は近代的なJavaコンパイラとバーチャルマシンに慣れていないので、コンパイル中や実行時に、パッケージ依存関係のゴードの結び目が拡大するにつれて、技術的な問題が大きなJavaプロジェクト(5000以上のクラス)に遭遇するのは不思議です。大規模なJavaプロジェクトで、複雑なパッケージ依存関係が発生しないようにする技術的な理由はありますか?
大規模なプロジェクトでは、大規模なプロジェクトでは、非循環のライブラリ(またはパッケージ)依存グラフから離れてしまうと、技術的なトラブル(すべての保守性に関する懸念を脇に)になります。
ソースツリーのほとんどが(オブジェクトのアーカイブは一般的にC++のプロジェクト内のパッケージと相関)あまりにも多くのオブジェクトのアーカイブが含まれている場合は、あまりにもすることができますリンク
- コンパイルがメモリ不足になる可能性がいくつかの例
この問題は、インラインテンプレートのインスタンス化でかなり悪化します。現代のワークステーションには、ビルドのどちらのフェーズでも、大規模なクラスの大部分をプルするプロジェクトをコンパイルしてリンクする機能がありません。
私が尋ねたJava開発者は、循環的なパッケージ依存性を避ける理由は技術的な制限ではないと考えています(他の動機が適用されます)。いずれかがあります?
Javaの技術的な制限にかかわらず、循環パッケージの依存関係はモノリスにつながる可能性があります。それらを避けることは役に立ちます。 –
@ AndyThomas-Cramer - Javaの "パッケージ依存関係"とは何ですか?私はそのようなことは考えていない(コンパイラに関する限り)。 –
@TedHopp - 下のあなたの同様のコメントに対する回答を参照してください。 –