|
31
|
| Pierre Olivier Martel · 技术社区 · 16 年前 |
|
|
1
40
作为语法的替代 badp's answer ,我提议:
我声称这有两个好处:
它确实需要一行额外的代码,我通常不喜欢这样,但在这种情况下,用垂直的极简主义来换取水平的极简主义似乎是值得的。 免责声明: 这是我自己独特的方法,我不知道它在Ruby社区的其他地方被使用到了什么程度。 编辑: 我应该提一下 matsadler's answer 也与此类似。我真的认为 一些 缩进是有帮助的。我希望这足以证明把这个问题单独回答是合理的。 |
|
|
2
21
作为一个Ruby程序员,我发现第一个更清晰。它清楚地表明,整个表达式是一个分配,分配的东西是基于某些逻辑确定的,并且它减少了重复。对于那些不习惯一切都是表达的语言的人来说,这看起来很奇怪,但是为那些不懂语言的人编写代码并没有那么重要,除非他们是你的目标用户。否则人们应该对它有一个过眼云烟的熟悉。 我也同意 bp's suggestion 您可以通过缩进整个if表达式使其更清晰地阅读,从而使它在视觉上都在赋值的右边。它完全是美学的,但我认为这使得它更容易被浏览,甚至对不熟悉语言的人也应该更清楚。
作为旁白:
这种类型的
|
|
|
3
16
我不喜欢你在第一个街区使用空格。是的,我是一个蟒蛇,但我相信当我第一次说的时候我说得很对
可以
在其他代码中间看起来很混乱,可能在其他代码周围
怎么样。。。
你也可以尝试…
…但如果
|
|
|
4
12
封装…
|
|
|
5
6
只是另一种方法:
|
|
|
6
5
另一种方法是使用一个块来包装它。
解决了分配问题。但是,对于这样的“复杂”代码来说,它的行太多了。如果我们只想初始化一次变量,这种方法将非常有用:
这是您不能用重写的代码做的,并且它是正确对齐的。 |
|
|
7
2
是另一种选择,它都避免重复
|
|
|
8
2
假设您的模型如下所示:
你可以做一些更疯狂的事情,比如:
或者,你可以用性感的,懒散的装束 named_scope 功能:
惯用
|
|
|
9
1
先用三元,后不用。 第一本几乎不可能读懂。 |
|
|
10
1
我也不是红宝石人,但第二个命令范围内的警铃会立即响起,在if块结束后,这个变量还会可用吗? |
|
|
11
1
我想说,对于不熟悉Ruby中的结构的人来说,第二个版本更易于阅读。所以+它!另一方面,第一次施工更干燥。 当我再看一点的时候,我发现第一个解决方案更有吸引力。我是一个Ruby程序员,但我以前没用过。当然,我会开始的! |
|
|
12
1
我认为最好的代码是:
查找后的“&”确保方法“products”不会评估类别是否为零。 |
|
|
13
0
在我看来,第二个对典型的程序员来说更易读。我不是红宝石人,所以我没有意识到if/else返回值……所以,以我为例(是的,这就是我的观点:d),第二个看起来是个不错的选择。 |
|
|
14
0
如果有人在浏览代码,我会说第二个代码块(您的)绝对是我发现最容易快速理解的代码块。 你朋友的代码很好,但是正如BP指出的那样,缩进在这个意义上是有区别的。 |
|
|
15
0
我不喜欢你在第一个块中使用括号。是的,我是一个Lisp用户,但我相信当我第一次说
可以
在其他代码中间看起来很混乱,可能在其他代码周围
怎么样。。。
(开玩笑,使问题恶化 @badp's answer ) |