2

在过去的几年里,我阅读了越来越多关于漂亮代码的文章,这些文章建议限制某些方法的行数。

有人说该方法应该适合 1 个屏幕(没有说你的屏幕尺寸),另一个说它应该最多 40 行,第三个说只要它易于理解就可以了,等等。

现在,这变得太混乱了。关于方法应具有的最大行数的最新建议是什么?

4

6 回答 6

1

在我看来,我认为它从未改变过:

一个方法应该有尽可能多的行来实现该方法旨在实现的单一目标。

于 2013-07-30T12:05:33.360 回答
1

你应该做你认为合理的限制。没有硬性规定。

如果您看到对某个主题的不同看法,通常意味着没有明确的答案,而是一个品味问题。我建议你选择一个建议,或者自己提出。

你可以说一个方法不应该编译到超过 65535 字节,因为它不会编译。

于 2013-07-30T12:03:18.823 回答
1

我认为实际长度并不重要,只要方法的代码在逻辑上属于一起。

您应该尝试通过将代码提取到私有方法来避免重复代码,但是仅仅因为一些“长度建议”而将长方法划分为部分是没有意义的。

于 2013-07-30T12:04:16.020 回答
1

Clean Code - Robert C. Martin 建议尽可能少地给出一个方法(不记得规则,但喜欢 8 行)。同样重要的是,一个方法应该只负责一个练习

于 2013-07-30T12:07:51.803 回答
1

它可能不是行数的问题,而是关于制作简洁和定义良好的函数。

还有其他有趣的问题。

https://stackoverflow.com/questions/129599/best-rule-for-maximum-function-size

什么时候函数太长?

于 2013-07-30T12:08:10.367 回答
1

我认为它不是一成不变的,但根据经验,我建议 5-10 行。如果超过 10 行,请问自己是否可以拆分。通常你可以分开。

尽量避免“地理代码” - 具有许多 if/switch 的代码,每个 if 块包含许多行。通常,在这种情况下,每个“如果”的内部逻辑可以外化为不同的方法。

如果您有 2 个循环(不是嵌套循环) - 通常每个循环(或循环的逻辑)都可以外部化。

于 2013-07-30T12:11:08.750 回答