Velocity Macro gebruiken om UI-component te maken

Is het een goed idee om de snelheidsmacro te gebruiken om UI-componenten te maken, hoe zit het met de prestaties en de beheersbaarheid van de code

bijvoorbeeld in plaats van

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

we zullen schrijven

#text($name $value)
1

2 antwoord

Het is zeker handig als u vertakkingslogica of lange html heeft die u eenvoudigweg wilt verbergen. Stel dat u een algemene navigatieknoppenformattering wilt, dan hoeft u de code slechts op één plaats te wijzigen. IMHO, voor refactoring is het gemakkelijker, voor draagbaarheid en nieuwe teamleden, misschien moeilijker.

Hier is een voorbeeldcode die ik gebruik die dit illustreert:

#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
 
     $butText  
#end
1
toegevoegd

Er is geen "goed" of "slecht", er is "geschikt voor de omstandigheden".

Tenzij er veel logica in het spel is, of een grote hoeveelheid vereenvoudiging, zou ik niet gewoon standaardtags vervangen door een macro of sjabloon - ik zou voldoende functionaliteit nodig hebben om het extra werk te maken , extra tijd en extra cognitieve belasting de moeite waard.

("Cognitieve belasting" betekent alleen dat als ik naar het sjabloonbestand kijk, het langer duurt voordat ik volledig begrijp wat het doet als ik de macro's moet opzoeken. Dat is niet per se slecht, en als ik de code van de app ken , het is niet relevant.)

0
toegevoegd