1

很难说明框架的复杂性(hibernate、spring、apache-commons、...)

我唯一能想到的就是比较jar 库的文件大小,甚至更好的是,比较jar 文件中包含的类的数量

当然,这不是复杂性的数学合理证明。但至少应该明确一些框架与其他框架相比是轻量级的。

当然,计算统计数据需要一些时间。为了节省时间,我想知道是否有人已经这样做了?

编辑:

是的,有很多工具可以计算单个方法和类的复杂度。但是这个问题是关于第三方 jar 文件的。

另请注意,我最初的问题中有 40% 的短语强调这样一个事实,即每个人都清楚复杂性难以衡量的事实,并且文件大小和类的 nr 可能确实不够。因此,没有必要进一步详细说明这一点。

4

1 回答 1

-1

有一些工具可以测量代码的复杂性。然而,这更像是一个心理问题,因为您无法在数学上定义“复杂代码”一词。显然,给两个随机的人一些代码会给你非常不同的答案。

一般来说,复杂性的问题源于人类大脑不能同时处理超过一定数量的代码行(实际上是功能块,但正常的代码行应该正是如此)。当然,一个人可以同时记住和理解的确切行数取决于许多因素(包括一天中的时间、一周中的一天和咖啡机的状态),因此完全取决于观众。但是,您必须为一项任务保留在“内部存储器寄存器”中的代码行数越少越好,因此这应该是尝试确定 API 复杂性时的一般因素。

然而,这种计算复杂性的方法存在一个缺陷,因为许多 API 为您提供了一种解决问题的快速方法(简单的入门级),但这种解决方案后来证明会导致几个非常复杂的编码决策,总体上会使您的代码很难理解。相比之下,其他 API 要求您进行非常复杂的设置,一开始很难理解,但由于初始设置,您的其余代码将非常容易。

因此,衡量 API 复杂性的一种好方法是定义一个由该 API 解决的具有代表性且足够大的任务,然后测量实现该任务时必须记住的同时代码行的平均数量。
完成后,请将结果发表在您选择的科学论文中。;)

于 2013-10-12T10:59:46.203 回答