在过去的几年里,我阅读了越来越多关于漂亮代码的文章,这些文章建议限制某些方法的行数。
有人说该方法应该适合 1 个屏幕(没有说你的屏幕尺寸),另一个说它应该最多 40 行,第三个说只要它易于理解就可以了,等等。
现在,这变得太混乱了。关于方法应具有的最大行数的最新建议是什么?
在过去的几年里,我阅读了越来越多关于漂亮代码的文章,这些文章建议限制某些方法的行数。
有人说该方法应该适合 1 个屏幕(没有说你的屏幕尺寸),另一个说它应该最多 40 行,第三个说只要它易于理解就可以了,等等。
现在,这变得太混乱了。关于方法应具有的最大行数的最新建议是什么?
在我看来,我认为它从未改变过:
一个方法应该有尽可能多的行来实现该方法旨在实现的单一目标。
你应该做你认为合理的限制。没有硬性规定。
如果您看到对某个主题的不同看法,通常意味着没有明确的答案,而是一个品味问题。我建议你选择一个建议,或者自己提出。
你可以说一个方法不应该编译到超过 65535 字节,因为它不会编译。
我认为实际长度并不重要,只要方法的代码在逻辑上属于一起。
您应该尝试通过将代码提取到私有方法来避免重复代码,但是仅仅因为一些“长度建议”而将长方法划分为部分是没有意义的。
Clean Code - Robert C. Martin 建议尽可能少地给出一个方法(不记得规则,但喜欢 8 行)。同样重要的是,一个方法应该只负责一个练习
它可能不是行数的问题,而是关于制作简洁和定义良好的函数。
还有其他有趣的问题。
https://stackoverflow.com/questions/129599/best-rule-for-maximum-function-size
我认为它不是一成不变的,但根据经验,我建议 5-10 行。如果超过 10 行,请问自己是否可以拆分。通常你可以分开。
尽量避免“地理代码” - 具有许多 if/switch 的代码,每个 if 块包含许多行。通常,在这种情况下,每个“如果”的内部逻辑可以外化为不同的方法。
如果您有 2 个循环(不是嵌套循环) - 通常每个循环(或循环的逻辑)都可以外部化。