3

Google Guava、ApachecommonsなどのJavaプロジェクトに含めることができる非常に多くのヘルパー外部ライブラリがあります。これらをたくさん含めることの短所は何ですか?それはプロジェクトのパフォーマンスに影響を与えますか、それともやり過ぎですか?

外部ライブラリをどれだけ使用したいかに基づいて、プロジェクトに含めるかどうかを決定しますが、それ以外に考慮する必要のある問題はありますか?

4

1 に答える 1

4

多数のライブラリをロードすると、最終的にはpermgenスペース(クラス定義が格納されている場所)が破壊され、jarで特定のクラスを使用しなくても、静的メソッド/フィールドが大量のメモリを消費する可能性があります。ただし、実際には、非常に制約のあるデバイス(組み込みなど)で作業している場合を除いて、これは通常問題にはなりません。

ただし、別の問題は、ライブラリが多いことです。

  • 本当に必要なものとそうでないもの、つまり保守性を追跡することが難しくなります
  • これらの各ライブラリの脆弱性に自分自身をさらす可能性があります
  • プロジェクト内で未知の変数の数が増えるため、予期しない動作やバグハントが長くなる可能性があります

しかし、オープンソースで長期にわたって維持されているライブラリの品質は、最初のいくつかのバージョンで私たちが書いたものよりもかなり優れている可能性がかなりあります。

要約すると、すべてを整頓して無駄のない状態に保つことは良いことですが、単にそのライブラリを含めないようにするために、ライブラリが実行するコードを実装しないでください。

そうは言っても、これには意見の戦争の可能性があると確信しているので、他の人の言うことを見てください!

于 2013-02-08T16:37:29.613 に答える