我试图简化一些复杂的代码块,发现用大括号分隔逻辑块很有用:
{
// step 1
{
// step 2
{
// step 3
}
}
}
这样做是否可以作为生产代码?将它们提取到单独的函数不被认为是一种选择,因为它需要将许多参数传递给它们并开发合理的函数名称 - 不值得。
答案 0 :(得分:7)
从技术上讲 - 是的,它不会破坏任何东西(除了作用域变量,但在编译时会检测到这些变量)。
从代码质量的角度来看 - 它听起来不像你想做的事情。如果你的方法很大,你应该尝试将它分解成更小的部分。也许您在该方法中使用的变量,如果有这么多的变量,应该是该类的成员?然后,您将能够更轻松地拆分方法。
你应该避免使用这个庞大的单片代码块的原因是多方面的。对于如此大的方法可能更难以推理,它可能更难对其进行单元测试,同样适用于调试。
作为旁注,就个人而言,当我需要一个大于20-30行代码的函数时,我几乎从未发现自己。如果发生这种情况,我会开始考虑将其分解,或者甚至做一些更复杂的重构。在考虑如何解决问题时,一个好主意就是编写几个单元测试。如果测试结果不明确,并且它们往往在它们中有多个不同的断言等,那么它的符号函数就太宽了。
答案 1 :(得分:2)
我认为这将导致相反的效果。括号会损害可读性,并且会使读者感到困惑,因为他会期望在这些括号之间真正需要的东西。我建议使用// ----------- abc的逻辑部分------ 为此。
使用注释而不是括号会更清楚。你甚至可以描述那里发生的事情。
EDIT说:将大型方法分成更小的方法总是值得的。只需将它们设为私有。软件质量指南说:每种方法都应该只有一份工作。