1

フレームワーク(hibernate、spring、apache-commons など)の複雑さを説明するのは非常に困難です。

私が考えることができた唯一のことは、jar ライブラリのファイル サイズを比較することでした。さらに良いのは、jar ファイルに含まれるクラスの数です

もちろん、これは複雑さの数学的な証明ではありません。しかし、少なくとも、一部のフレームワークは他のフレームワークと比較して軽量であることを明確にする必要があります。

もちろん、統計を計算するには静かな時間がかかります。時間を節約するために、おそらく誰かがすでにそうしているのだろうかと思っていました。

編集:

はい、個々のメソッドやクラスの複雑さを計算するツールはたくさんあります。しかし、この質問はサードパーティの jar ファイルに関するものです。

また、私の最初の質問のフレーズの 40% は、複雑さを測定するのが難しく、ファイル サイズとクラス数が実際には十分でない可能性があるという事実を誰もが十分に認識しているという事実を強調していることに注意してください。したがって、これについてこれ以上詳しく説明する必要はありません。

4

1 に答える 1

-1

コードの複雑さを測定できるツールがあります。ただし、「複雑なコード」という用語を数学的に定義することはできないため、これはより心理的な問題です。そして明らかに、無作為に 2 人に何らかのコードを与えると、非常に異なる答えが得られます。

一般に、複雑さの問題は、人間の脳が一定数以上のコード行を同時に処理できないという事実から生じます (実際には機能的な部分ですが、通常のコード行はまさにそれであるはずです)。もちろん、同時にメモリに保持して理解できる正確な行数は、多くの要因 (時間帯、曜日、コーヒー マシンの状態など) によって異なり、したがって聴衆によって完全に異なります。ただし、1 つのタスクに対して「内部メモリ レジスタ」に保持する必要があるコードの行数は少ない方がよいため、API の複雑さを判断しようとするときは、これが一般的な要因になるはずです。

ただし、複雑さを計算するこの方法には落とし穴があります。多くの API が問題を解決するための迅速な方法 (簡単なエントリー レベル) を提供するためです。非常にわかりにくい。対照的に、他の API では非常に複雑なセットアップを行う必要があり、最初は理解するのが困難ですが、その初期セットアップにより、残りのコードは非常に簡単になります。

したがって、API の複雑さを測定する良い方法は、代表的で十分な大きさの API によって解決するタスクを定義し、そのタスクを実装するために心に留めておく必要がある同時実行コード行の平均量を測定することです。
完了したら、お好みの科学論文で結果を公開してください。;)

于 2013-10-12T10:59:46.203 に答える