代码之家  ›  专栏  ›  技术社区  ›  Geo

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

  •  2
  • Geo  · 技术社区  · 16 年前

    当我编写一些脚本时,我通常会遇到这样的情况:

              end
            end
          end
        end
      end
    end
    

    我不知道你的情况,但我觉得这很难看。对此能做些什么吗?

    6 回复  |  直到 14 年前
        1
  •  19
  •   Barry Kelly    16 年前

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

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

        2
  •  5
  •   Ethan    16 年前

    把它们分成小块的建议是好的。但是,如果您需要很多这样的嵌套块,您可以标记 end 带注释的关键字。

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

    仍然丑陋,但至少更清晰。

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

        3
  •  4
  •   Andrew Y    16 年前

    如果这些内部块做了一些容易命名的事情(或者可以重用?),为什么不将它们重构为单独的小函数?然后你会得到更短的结尾序列。

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

        4
  •  2
  •   auser    16 年前

    尝试使用小的、可测试的函数。不仅您的函数和更重要的逻辑易于测试,而且您的代码变得更加可读。

        5
  •  1
  •   Gene T    16 年前

    我见过嵌套的“”块和4空间软选项卡,以及:

    结束;结束;结束;结束

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

        6
  •  1
  •   Andrew Grimm atk    14 年前

    如果您愿意编译自己的Ruby,可以使用 ennnnnnnd 样式语法(链接到rubykaigi talk)。不幸的是,有人建议 rejected 红宝石核心。

    推荐文章