如何让Ruby的N端看起来更好?

时间:2009-07-20 12:21:40

标签: ruby syntax refactoring coding-style

当我编写一些脚本时,我通常会达到我的代码如下所示的位置:

          end
        end
      end
    end
  end
end

我不了解你,但这对我来说非常难看。可以做些什么吗?

6 个答案:

答案 0 :(得分:19)

不要将代码嵌套这么多?重构使用更多方法?使用传递给其他例程的块吗?

一般来说,深度嵌套是指示方法过于复杂且应该被分解的指标。它也可以通过根据重构方法命名内部复合语句来帮助隐式结构文档。

答案 1 :(得分:5)

分解成小块的建议很好。但是如果你需要很多这样的嵌套块,你可以用评论标记end个关键字。

    end # End conditional statement
  end # End method declaration
end # End class declaration

仍然很难看,但至少更清楚。

之前提到的其他选项更可取。

答案 2 :(得分:4)

如果那些内部块做了一些容易命名的东西(并且可能是可重用的?),为什么不将它们重构成小的独立函数呢?那么你最终会得到更短的结尾序列。

否则另一种方法是使用Python: - )

答案 3 :(得分:2)

尝试使用小型,可测试的功能。您的功能和更重要的逻辑不仅易于测试,而且您的代码变得更具可读性。

答案 4 :(得分:1)

我见过嵌套的“{}”块和4空格的软标签:

  

端;端;端;端

我想这可以节省垂直空间,但我不建议,上面关于避免深度嵌套和评论块结束行的注释是有效的方法。也许深度嵌套是为了避免需要加速的事情的方法调用开销,但可读性几乎总是胜过那种“优化”

答案 5 :(得分:1)

如果您乐意编译自己的Ruby,可以使用ennnnnnnd样式语法(链接到RubyKaigi对话)。不幸的是,这已被Ruby核心提出并rejected