在过去的几年中,我阅读越来越多的美丽的代码文本,建议限制某些方法的行数。什么是方法最大线的最新建议?
有人说这个方法应该适合1个屏幕(没有说你的屏幕大小),另一个说它应该是最多40行,第三个说它没关系,只要它很容易遵循,等等。
现在,这变得太混乱,不能遵循。什么是方法应该有的最大限度的最新建议?
在过去的几年中,我阅读越来越多的美丽的代码文本,建议限制某些方法的行数。什么是方法最大线的最新建议?
有人说这个方法应该适合1个屏幕(没有说你的屏幕大小),另一个说它应该是最多40行,第三个说它没关系,只要它很容易遵循,等等。
现在,这变得太混乱,不能遵循。什么是方法应该有的最大限度的最新建议?
我认为它不是一成不变的,但作为一个经验法则,我建议5-10线。如果超过10条线路问自己是否可以拆分它。通常你会分裂。
尽量避免“地理代码” - 许多if/switch代码,每个if-block包含许多行。通常,在这种情况下,每个“if”的内部逻辑可以外化为不同的方法。
如果您有2个循环(不是嵌套循环) - 通常每个循环(或循环的逻辑)都可以外化。
你应该做你认为合理的限制。没有硬性规定。
如果您看到关于某个主题的混合视图,通常意味着没有明确的答案,而是口感问题。我建议你选择一个建议,或者自己制作。
你可以说一个方法不应该编译成超过65535字节,因为它不会编译。
我喜欢使用阿伏加德罗的数字作为我的标准。我爱物理... – duffymo
@duffymo你有没有超过你的限制? ;) –
'6.02214 * 10^23' ........... – NINCOMPOOP
只要方法的代码在逻辑上属于一起,我不认为实际长度很重要。
您应该尝试避免通过将代码提取到私有方法来重复代码,但仅仅因为某些“长度推荐”而将长方法划分为部分是没有意义的。
我不认为这在我看来曾经改变:
,因为它需要实现单一的目标,该方法的目的是实现一种方法,应该有尽可能多的行。
清洁代码 - 罗伯特C.马丁 建议给尽可能少的几行(不能记住规则,但像8行)的方法。同样重要的是,一种方法应该只负责一个单一的练习
就我个人而言,我认为鲍勃的建议自相矛盾:尽可能少的行数;但不超过x! – StuPointerException
@StuPointerException没有规则没有例外。这是一条指导方针,而不是胸前的枪。 – WhileTrueSleep
它可能不是一个问题的行数,而是关于简明明确的功能。
还有其他有趣的问题。
https://stackoverflow.com/questions/129599/best-rule-for-maximum-function-size
关于SO的问题 - 这是一个关于程序员的讨论:http://programmers.stackexchange.com/questions/133404/what-is-the-ideal-length-of-a-method – assylias
尽可能多的是需要的并没有更多。我不确定这个问题有答案;只有意见 –