一位工作的朋友正在和我争辩说,某些方法可以长达200行,但仍然可以很容易理解。
而且我在争论如果你能分开大方法,你应该。 根据经验,任何方法都不应该超过30行。
我搜索了许多地方(当然是谷歌)以获得有利于每种方式的合理解释,但除了“代码将更易于维护”或“分而治之”之外找不到任何东西,但是没有确切解释原因。
有人可以向我解释为什么大方法不好(或不是)的具体原因吗?
答案 0 :(得分:1)
如果作者以外的其他人可以理解,那么方法,函数或任何代码都是好的。如果你的方法开始变长,很有可能会采用一些重新分解或OOP设计原则将它分成较小的总体责任块。
(即单一责任原则)
编写代码比科学更具艺术性(对不起Comp.Sci。窥视......它的真实性)我不知道任何编译器会关心你的代码是否冗长,但如果你需要稍后更改某些内容这将是一种皇室般的痛苦......相信我。
无论你做什么,总会有另一个程序员有理论或模式要应用,但最后你需要编写有效的代码。没有最终用户会赞扬你的代码是多么优雅,或者你对设计模式的使用有多精彩......他们关心的是它是否有效!
那么,我的建议在哪里......
答案 1 :(得分:0)
如果您有一个200行的方法,并且您将此代码提供给其他人,那么该人可能想要更改它,但在他能够做到这一点之前,他必须经过200行才能理解要编辑的内容。它效率不高,因为它不易阅读。
在实践中,200线方法总是可以用多种方法分割(在你调用它时分而治之)。这样做的好处是可以重复使用这些方法,并且您的方法变得更具可读性。现在,如果您需要编辑该段代码,则只需编辑一次,而不必复制代码两次。
那就是说,我认为一个方法最多30行是非常合适的。但是根据经验,你应该总是问问自己,你的方法的某些部分是否可以重复使用,为了可读性目的而拆分,或者你是否可以使用其他方法使你的代码更小,从而更具可读性。通过在方法中使用参数,您可以使方法更加灵活,这也是一件好事,因为您可以在其他方法中重复使用它。