它有很多错误,写得很奇怪,甚至不确定它应该做什么,因为你不是最初的开发者。我猜它也没有任何测试。在这种情况下,我将首先编写一些测试来确定代码应该做什么,然后您可以尝试重构并确保它仍然按照预期执行。如果没有这一点,再加上如此混乱的代码,尤其是对于ruby来说

它有很多错误,写得很奇怪,甚至不确定它应该做什么,因为你不是最初的开发者。我猜它也没有任何测试。在这种情况下,我将首先编写一些测试来确定代码应该做什么,然后您可以尝试重构并确保它仍然按照预期执行。如果没有这一点,再加上如此混乱的代码,尤其是对于ruby来说,ruby,idioms,Ruby,Idioms,它有很多错误,写得很奇怪,甚至不确定它应该做什么,因为你不是最初的开发者。我猜它也没有任何测试。在这种情况下,我将首先编写一些测试来确定代码应该做什么,然后您可以尝试重构并确保它仍然按照预期执行。如果没有这一点,再加上如此混乱的代码,尤其是对于ruby来说,你的重构很可能会在你无意中改变程序的语义,很可能会引入新的甚至更奇怪的bug 最好给出一个具体的代码示例。这样我们才能帮忙。因为,一般来说,这种逻辑是从bed代码设计中产生的。你是对的。我正在重构一个脚本,我试图美化一个完整的重写-(我认为定


它有很多错误,写得很奇怪,甚至不确定它应该做什么,因为你不是最初的开发者。我猜它也没有任何测试。在这种情况下,我将首先编写一些测试来确定代码应该做什么,然后您可以尝试重构并确保它仍然按照预期执行。如果没有这一点,再加上如此混乱的代码,尤其是对于ruby来说,你的重构很可能会在你无意中改变程序的语义,很可能会引入新的甚至更奇怪的bug

最好给出一个具体的代码示例。这样我们才能帮忙。因为,一般来说,这种逻辑是从bed代码设计中产生的。你是对的。我正在重构一个脚本,我试图美化一个完整的重写-(我认为
定义?
并不像你认为的那样有效。看一看文档。我不明白你想做什么,你的意图是什么。你所有的备选方案都有些不同,它们并不都是等价的。而且它们都有更简洁的备选方案。这取决于你真正想做什么,这是不可能的不清楚。一般来说,我认为没有任何理由喜欢三元运算符(
?:
)一行if——除非你发现三元运算符在给定的情况下更可读。一行if是惯用的,如果它真的做了你想做的事情。我认为即使是你开始使用的版本也可能没有做你想做的事情。谢谢你的反馈。这是一个很好的视角。所以我这里的主要目标就是让代码可重新阅读。我遇到的问题是,多层嵌套的ifs使用基于内联的两个块。这让我觉得代码味道很难闻。我也使用内联ifs,但一旦事情开始嵌套,我就开始担心。我最大的担心是,可能会错过一个条件,并且由于太多的dec,可能很难跟踪事情这是另一个例子:如果这个&&that&&value&&value如果今天创建了某个&&var=如果另一个&&var我看到了这样的代码,所以这让我在某种程度上感到畏缩。请在上面的每个if语句之前添加换行符。看起来缩进并没有在注释中指示代码块。. :-(关于SO的评论中没有新行。是的,你所有的代码示例也让我感到害怕。但是如果你改变它的语义,你会引入错误。你的替代示例与原始示例做的事情不同。如果你想清理它,你将不得不更实质性地重构它,而不是逐行重构。同意。我同意我认为真正的解决办法是我需要重新设计。时间这个永恒的问题总是与我不一致总而言之,主要目标是提高可读性。看看是否可以替换一些内联变量检查以减少嵌套深度,并尝试使用与原始测试有一些相似之处且被认为可以接受的东西替换这些内联测试。
if something
  some_variable = true if another_variable
  your_variable = true if that_other_variable
elsif thatthing
  my_variable = true if another_variable
  her_variable = true if that_other variable
else
  puts "nothing found"
end
if something
  some_variable = defined?(another_variable) ? true : false
if something
  some_variable = !defined?(another_variable)
# There are some variations to this, but this helps to address the negation I am trying to avoid.
if something
  some_variable = (defined?(another_variable) && another_variable.length > 0)    # Two truth based tests (does the var exist, and is it greater than 0 in length) This returns true/false.
if something
  some_variable = !!another_variable
  your_variable = !!that_other_variable
elsif thatthing
  my_variable  = !!another_variable
  her_variable = !!that_other variable
else
  puts "nothing found"
end
 some_variable = true if another_variable
some_variable = defined?(another_variable) ? true : false