Coding style 条件换行调用还是代码?

Coding style 条件换行调用还是代码?,coding-style,conditional-statements,Coding Style,Conditional Statements,目前正试图重构一些遗留代码,我发现自己一次又一次地遇到同样的情况。我有一个非常大的函数,我想对几个块使用extract方法。很多时候,我想要提取的块完全包装在一个条件中。从样式/最佳实践的角度来看,将条件包装代码保留在新方法调用中,或者将条件包装代码提取到新方法中是否有意义。你能解释一下利弊吗 i、 你喜欢什么 A 或者B 也许这是琐碎的,但因为我经常看到它,我想我会问。让我们假设small_函数不会以任何形式重用,只用于提取此块 谢谢。这取决于上下文。对于每一个例子,如果你有一种直觉,你可能是

目前正试图重构一些遗留代码,我发现自己一次又一次地遇到同样的情况。我有一个非常大的函数,我想对几个块使用extract方法。很多时候,我想要提取的块完全包装在一个条件中。从样式/最佳实践的角度来看,将条件包装代码保留在新方法调用中,或者将条件包装代码提取到新方法中是否有意义。你能解释一下利弊吗

i、 你喜欢什么

A

或者B

也许这是琐碎的,但因为我经常看到它,我想我会问。让我们假设small_函数不会以任何形式重用,只用于提取此块


谢谢。

这取决于上下文。对于每一个例子,如果你有一种直觉,你可能是对的。只需确保内部函数的名称与隐含的if检查匹配,或者不匹配

考虑到这一点,最好的办法是将if放在内部函数中,因为有一个复杂的外部函数和许多简单的内部函数。在几个小函数内部进行一次额外的if检查不会给它们单独增加太多的复杂性,而在外部函数中添加许多额外的分支将有意义地影响其复杂性和可读性


最后,将检查放在内部函数与外部函数之间有一个轻微的性能折衷。有时,当if的计算结果为false时,调用和返回内部函数可能会产生额外的开销,但另一方面,外部代码可能会稍微小一些。无论哪种方式,为了产生任何有意义的影响,外部函数必须非常热,并且必须用低级语言编写。

取决于是否可以合理地将检查条件视为smallfunction的一部分,如果不是,将其重命名为smallfunction\u if\u condition是否经济。这次没有银弹。
Big_function() {
    <...>
    If (conditional) {
        Small_function();
    }
    <...>
}

Small_function() {
    Code
}
Big_function() {
    <...>
    Small_function();
    <...>
}

Small function() {
    If (conditional) {
        Code
    }
}