对于HAML文件中的部分内容,我传递的值为long的参数或名称较长的方法,例如:
"Some quite long string"
quiteLongMethodNameHere(otherConstant)
为了缩短它们,我将它们包装在一个常量/变量中:
- message = "Some quite long string"
- is_important = quiteLongMethodNameHere(otherConstant)
= render :some_component, msg: message, is_important: is_important
这是一个好习惯吗?或者我应该将值放在param
上而不将其包含在变量/常量中?
答案 0 :(得分:1)
无论字符串的长度如何,将它赋给变量/常量是有意义的,而不是在视图文件中直接引用它。如果是文本,将它放在i18n文件中会更有意义。
但是,在主视图文件中执行此操作并不好。如果要执行此操作,请在控制器文件或帮助文件中执行此操作。
答案 1 :(得分:1)
这是个案决定。你想要平衡有时相互竞争的清晰和简洁的利益。对我来说,这取决于两种形式的表现力。如果长方法名称清晰,准确且富有表现力,那么我对使用中间变量来保持其结果的兴趣不如不是。
在其他长形式表达不太常见的情况下,我会经常使用中间变量作为"生活"文档,即使它们仅用于下一行代码。这更明确地向读者展示了您的意图(可能是其他人,或者您将来某个时间点)。 我发现中间变量比代码注释要好得多,因为代码注释可以更容易地过时,并且在代码中进行澄清使其可用于调试器等。创建额外变量的性能损失很小,并且仅在最重要的不寻常的情况。
另一个因素是,如果您正在聚合包含这些函数调用和值的事物(在数组,散列等中),那么使用中间变量会使代码更整洁,并且可能更容易理解,因为您可以自定义名称在该集合的背景下最有意义。