关于基于 LOC(代码行)的数量理解程序需要多长时间,是否有任何广泛的、过于笼统且几乎无用的规则?
(我知道任何规则都是宽泛的、过于笼统的,而且大多是无用的。没关系。)
(有问题的语言是 Delphi,但这不重要,因为我正在寻找广泛的、过度概括的和大多无用的规则。)
关于基于 LOC(代码行)的数量理解程序需要多长时间,是否有任何广泛的、过于笼统且几乎无用的规则?
(我知道任何规则都是宽泛的、过于笼统的,而且大多是无用的。没关系。)
(有问题的语言是 Delphi,但这不重要,因为我正在寻找广泛的、过度概括的和大多无用的规则。)
决定理解一个程序需要多长时间的不是 LOC 的数量,而是复杂性。
如果我的程序有 100,000 行打印语句,我认为该程序非常清晰易懂。但是,如果我有一个嵌套十深的 for 循环的程序,我认为这将需要更长的时间才能理解。
圈复杂度可以粗略地表明代码的理解难度,并且可以发出有关代码的其他一些警告标志。
一些关于同行代码审查的论文说它应该在每小时 100 到 400 行代码之间。
你不能用谷歌搜索这个,因为每个使用特定语言编程的人都会有不同的近似数字。
这就是我的意思。
关于程序编写者。
转移到阅读代码的人身上。
将重点转移到环境上,重要的事情将是。
我的理论是它是 O(n 2 ) (因为你必须理解每一行与其他每一行)。
但是,像往常一样使用 big-o 表示法来获取实际数值时,这个答案很宽泛、过于笼统并且几乎没有用处。
对于有经验的代码审查者来说,代码审查指标(这不是同一件事,但几乎可比)将这个数字放在每小时大约 50-100 个 LoC 的范围内。
这当然也取决于他们在评论中寻找的内容、语言、复杂性、熟悉度等……但这可能会给你一个普遍的过度概括。
我正在寻找宽泛的、过于笼统且大多无用的规则。
在我看来,您只是想找到一种方法来估计学习新的管理代码库或其他东西所需的时间。在这种情况下,请在线查找代码片段,并计算您理解它需要多长时间。将其除以代码段中的行数。添加一些填充。砰!这是你的规则。
看看COCOMO方程。它们包含基于源代码行的广泛、过度概括且大多无用的规则。
除了“程序有多复杂?”之外,其他变量包括“你对它的理解程度如何? ” 以及“您对其他事物的理解程度如何,例如程序的功能规范?”
当我开始使用一个新程序时,我会尝试尽可能少地理解它!具体来说,我尝试:
了解某人希望我进行更改的功能规范(如果没有人希望我更改程序,那么我根本不需要了解它)
查找并理解现有程序的最小可能子集,这将使我能够在不破坏任何其他先前/现有功能的情况下进行更改。