Delphi 的 LoC(代码行数)度量标准?

7

我如何为我的Delphi(Pascal)项目生成LoC(代码行数)指标?是否有内置的方法可以做到这一点?


5
Delphi内置工具可生成这些内容,我编辑了这个问题,所以它不是在寻求建议,而是在寻找完成任务的方法,这是符合主题的。 这个问题很有价值,不应该被关闭(挂起),特别是在提问4年后。 StackOverflow继续走向过度调整的道路。 很好。 - Warren P
nloc.sourceforge.net - 适用于Pascal(和类似语言)和C++。 - Gabriel
8个回答

11

我不使用LOC度量。LOC度量存在一个问题:它们鼓励编写类似这样的代码


1
Mason,谢谢你提供的链接!这是一个软件专业人士打败愚蠢系统的好方法。 - azheglov
只有当你按行数付费时才会这样做,但是谁会这么做呢。 - Tony_Henrich
有多个原因需要了解SLOC。你只列举了其中一个。因此,你的答案是从有限的角度出发的。无论如何,你也不想在一家按代码行数支付薪水的公司工作。 - Gabriel

8
最近的Delphi版本,从Pro及以上版本开始,包含了一些基本的度量指标,包括LOC度量和其他类似无用的度量,作为内置功能。企业版和架构师版包括更大的度量指标和审计功能。
值得注意的是,结果以一种难以理解的网格形式显示,没有任何帮助和提示。
事实上,帮助文件中也没有任何帮助信息。但是,在运行度量之前,有一些描述各种神秘事物意义的说明。以下是内置免费度量指标列表:
CIW - Class Interface Width

LOC - Lines of Code

NAM - Number of Accessor Methods

NOA - Number of Attributes

NOC - Number of Classes

NOIS - Number of Import Statements

NOM - Number of Members

NOP - Number of Parameters

NOPA - Number of Public Attributes

PIS - Package Interface Size

PS - Package Size

NOO - 操作符方法数量 - Diiiiii

6
你可以使用Pascal Analyzer生成代码行度量,以及许多其他指标和提示(lint)样式信息。
Delphi本身也具有内置的度量功能,包括Pro和更高版本中的LoC。

谢谢大家,这似乎是一个不错的度量工具。我得去检查一下。另外,是的,仅仅测量代码行数是一个毫无意义的指标。尽管有时候只是想知道它有多大,为了虚荣心你懂的 :) - utku_karatas
Pascal Analyzer是一款商业工具。它可以分析单个文件或项目,但不能分析目录内容。[将3年前的答案迁移到此评论] - Thomas Weller

4

SourceMonitor 可以计算一系列指标,其中包括 LOC。除了 C++、C、C#、VB.NET 和 Java 外,它也适用于 Delphi。


3

不要使用它,因为这是一个过时且无用的指标。


这并不是开发者生产力的度量标准,但它可以帮助我们找出哪些单元可能过于庞大,需要进行一些拆分。大并不好,而是不好的。 - Warren P
1
这并不是一个无用的指标,因为我们缺乏更好的替代方案。然而,它不应被错误地使用,因为它可能会被欺骗。 - magallanes

2

先构建所有内容,然后记录大约行数。

不幸的是,这个指标除了可能给非程序员留下深刻印象外,并没有太多用处。实际上,一万行代码的程序可以比数百万行的程序复杂五倍。产品的关键不在于代码行数,而在于将这些代码组合在一起的工程技术。



1

CodeHealer 提供了许多不同的指标,包括代码行数。


很遗憾,Code-Healer的作者对于XE5和XE6的适配没有兴趣进行更新,所以我们可以说它已经死了。 - Warren P
那太遗憾了。CodeHealer指出了一些非常难以察觉的代码问题。 - Bruce McGee
1
他们宣布支持 Delphi 10、Berlin 和 Tokyo。所以 @WarrenP 和 Bruce,显然他们正在更新它。 - LMSingh
2
他们在这个过程中能否修复他们愚蠢的“每次发布新的Delphi版本时故意破坏,直到你再次从我们这里购买为止,但是嘿,我们不想发布更新,所以很抱歉,你被困住了”的理念?与CodeHealder不同,Pascal Analyzer在新的Delphi版本发布时默认保持工作状态。 - Warren P
@WarrenP 有些商业模式注定会自取灭亡。 - Sherlock70

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接