【发布时间】:2011-10-27 15:50:50
【问题描述】:
使用velocity宏创建UI组件是个好主意吗? 什么是性能和代码可维护性
例如,代替
<input type="text" name="$name" value="$value" />
我们会写
#text($name $value)
【问题讨论】:
使用velocity宏创建UI组件是个好主意吗? 什么是性能和代码可维护性
例如,代替
<input type="text" name="$name" value="$value" />
我们会写
#text($name $value)
【问题讨论】:
如果您想要简单地隐藏分支逻辑或长 html,这当然很方便。 假设您想要一个通用的导航按钮格式化程序,您只需在一处更改代码。 恕我直言,对于重构来说更容易,对于可移植性和新团队成员来说,可能更难。
这是我用来说明这一点的示例代码:
#macro( viewCtrlButton $butId $butText $style) ##style is optional
##configuration phase
#if ($style == "save") #set($type = "icon-buttons cat-save")
#elseif($style == "cancel") #set($type = "icon-buttons cat-cancel")
#elseif($style == "next") #set($type = "buttonz but_naviR")
#end
#if ($butId.contains("."))
#set($link = "super_link")
#else
#set($link = "submit_link")
#end
##the actual code to construct
<a id="$butId" href="#" class="$type $link">
<span> $butText </span>
</a>
#end
【讨论】:
没有“好”或“坏”之分,只有“适合情况”。
除非涉及大量逻辑或大量简化,否则我不会简单地将标准标签替换为宏或模板——我需要足够的功能来完成额外的工作、额外的时间和额外的认知负荷是值得的。
(“认知负荷”只是意味着如果我正在查看模板文件,如果我必须查找宏,我将需要更长的时间才能完全理解它在做什么。这不一定是坏事,如果我知道的话应用程序的代码,它不相关。)
【讨论】: