HAML – яките шаблони

от IvanK

Идеята за “шаблонен език”(template language) за писане на HTML я знам отдавна (даже може би от училище) и досега никога не ме беше грабвала – пробвал съм Smarty (за PHP) както и DTML (още една екзотика) и няколко други, и винаги ми се е струвало … странно. Къде къде по лесно и естествено е да пише човек на HTML и да вмъква к’вото му трябва тук таме, ала PHP <? ?>

Обаче наскоро се натъкнах на нещо уникално – HAML .

Този език засега е само за Rails, но още във своя кратък и зародишен живот е супер як. Всъшност, както повечето гениални неща едва ли може да се каже че е “революционен”, но това което прави, го прави толкова добре, че вече ми става гадно, когато трябва да напиша обикновен HTML. Нека демонстрирам:

Пиша това:

1
2
3
4
5
6
7
8
9

  !!! XML
  !!!
  %html
    %head
      %title Myspace
    %body
      %h1 I am the international space station
      %p Sign my guestbook

а получавам това:

1
2
3
4
5
6
7
8
9
10
11
12

  <?xml version="1.0" encoding="utf-8" ?>
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html>
    <head>
      <title>Myspace</title>
    </head>
    <body>
      <h1>I am the international space station</h1>
      <p>Sign my guestbook</p>
    </body>
  </html>

Красиво подравнено, по всички стандарти… и вече няма да има нужда неудобно да се обяснявам защо по дяволите HTML-ла на новия сайт изглежда като спагети, тъй като независимо какви сложнотии стават вътре във скриптовете на rails-a (partial-и, helper-и- за който му говорят нещо) на бял свят се пръква перфектоно подравнен код. Иначе да, и на мен ми изглеждаше малко странен този синтаксис, но след 10-20 минути свикнах и сега го чета много по-лесно и бързо, отколкото нормален HTML

“Ама това не е ли по бавно?” ще питате вие? Отговорът е “да, но малко”—разликата в скороста на генериране на HAML и ERB (т’ва дето rails използва по default) e okolo 5-10%-та, обаче, на практика използвайки HAML сигурно ще почнете да пишете много по-изчистен HTML (защото сега вече ще ви пука за “красотата”), и има голяма шанс да се окаже, че с HAML ще имате по-бързи страници.

Та така, доиде въпроса струва ли си? Все пак единственото нещо което получавам е добре подравнен HTML и “красив” source code, при което даже губя и малко performance… Поне за мен отговора е твърдо да – станах по-добър програмист, имам по-малко HTML-ски бъгове(даже по-малко бъгове по-принцип), по-удобно и лесно спазване на стандартите, по-лесен debugging…

Едно голямо браво на пичовете от Kанада, за това че направиха работата ми къде къде по-красива, а както казва един познат—“Животът е хубав, защотото е красив”

Коментирай