【问题标题】:using Velocity Macro to create UI Component使用 Velocity Macro 创建 UI 组件
【发布时间】:2011-10-27 15:50:50
【问题描述】:

使用velocity宏创建UI组件是个好主意吗? 什么是性能和代码可维护性

例如,代替

<input type="text" name="$name" value="$value" />

我们会写

#text($name $value)

【问题讨论】:

    标签: macros velocity


    【解决方案1】:

    如果您想要简单地隐藏分支逻辑或长 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
    

    【讨论】:

      【解决方案2】:

      没有“好”或“坏”之分,只有“适合情况”。

      除非涉及大量逻辑或大量简化,否则我不会简单地将标准标签替换为宏或模板——我需要足够的功能来完成额外的工作、额外的时间和额外的认知负荷是值得的。

      (“认知负荷”只是意味着如果我正在查看模板文件,如果我必须查找宏,我将需要更长的时间才能完全理解它在做什么。这不一定是坏事,如果我知道的话应用程序的代码,它不相关。)

      【讨论】:

        猜你喜欢
        • 2016-09-17
        • 2014-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-04
        • 2019-08-03
        • 2011-05-02
        相关资源
        最近更新 更多