2013-07-30 29 views
2

在过去的几年中,我阅读越来越多的美丽的代码文本,建议限制某些方法的行数。什么是方法最大线的最新建议?

有人说这个方法应该适合1个屏幕(没有说你的屏幕大小),另一个说它应该是最多40行,第三个说它没关系,只要它很容易遵循,等等。

现在,这变得太混乱,不能遵循。什么是方法应该有的最大限度的最新建议?

+5

关于SO的问题 - 这是一个关于程序员的讨论:http://programmers.stackexchange.com/questions/133404/what-is-the-ideal-length-of-a-method – assylias

+0

尽可能多的是需要的并没有更多。我不确定这个问题有答案;只有意见 –

回答

1

我认为它不是一成不变的,但作为一个经验法则,我建议5-10线。如果超过10条线路问自己是否可以拆分它。通常你会分裂。

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

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

1

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

如果您看到关于某个主题的混合视图,通常意味着没有明确的答案,而是口感问题。我建议你选择一个建议,或者自己制作。

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

+2

我喜欢使用阿伏加德罗的数字作为我的标准。我爱物理... – duffymo

+0

@duffymo你有没有超过你的限制? ;) –

+0

'6.02214 * 10^23' ........... – NINCOMPOOP

1

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

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

1

我不认为这在我看来曾经改变:

,因为它需要实现单一的目标,该方法的目的是实现一种方法,应该有尽可能多的行。

1

清洁代码 - 罗伯特C.马丁 建议给尽可能少的几行(不能记住规则,但像8行)的方法。同样重要的是,一种方法应该只负责一个单一的练习

+0

就我个人而言,我认为鲍勃的建议自相矛盾:尽可能少的行数;但不超过x! – StuPointerException

+0

@StuPointerException没有规则没有例外。这是一条指导方针,而不是胸前的枪。 – WhileTrueSleep

相关问题