erb, haml или slim: какой из них вы предлагаете? И почему? [закрытый]



Я изучаю рельсы, и я видел эти шаблонные движки. У меня нет опыта работы с ними (только erb).



но поскольку я новичок, я действительно запутался. Какой из них вы предлагаете и почему? Эрб, Хэмл или Слим? Пожалуйста, объясните причину, по которой вы предпочитаете один из них другим. И если у вас есть какие-либо другие рекомендации, пожалуйста, сообщите нам об этом.



изменить:
Я не ищу здесь победителя. Я просто хочу услышать Ваше мнение о них, их синтаксисе, скорости выполнения и т. д так далее.

722   5  

5 ответов:

ERB хорош в основном, если у вас есть веб-дизайнер, который будет работать на простом HTML и не знает ни haml, ни slim. Таким образом, он может писать HTML, и вы можете встроить логику ruby с соответствующими тегами.

Если вы работаете как на HTML, так и на ruby logic, или ваш дизайнер готов узнать что-то новое (например, HAML), я бы пошел на HAML. Он намного более удобен для рубинов, уменьшает количество символов на много и намного более читаемый, чем ERB.

например (взято из official HAML сайт):

в ERB ваш вид будет выглядеть так:

<div id="profile">
  <div class="left column">
    <div id="date"><%= print_date %></div>
    <div id="address"><%= current_user.address %></div>
  </div>
  <div class="right column">
    <div id="email"><%= current_user.email %></div>
    <div id="bio"><%= current_user.bio %></div>
  </div>
</div>

в то время как в HAML это будет выглядеть так:

#profile
  .left.column
    #date= print_date
    #address= current_user.address
  .right.column
    #email= current_user.email
    #bio= current_user.bio

намного чище!

два больших преимущества использования slim над haml:

  1. Slim В настоящее время примерно в восемь раз быстрее, чем haml.

  2. Slim поддерживает потоковое HTTP, а HAML-нет.

  3. Slim имеет более естественный синтаксис:a href="foo.html"

с моей головы это то, что я придумал

ERB:

плюсы

  • по умолчанию из коробки
  • не зависит от пробела
  • самый низкий барьер входа (если он исходит из HTML), поскольку его HTML с кодом Ruby посыпается
  • большинство лексеров IDE читают его по умолчанию
  • DHH предпочитает его
  • устаревшие приложения, вероятно, все еще используют это

минусы

  • подробней
  • теги content_for в помощниках и представлениях могут быстро выйти из-под контроля
  • теги content_for усложняют вложенность тегов, так как erb возвращает только последнюю строку в блоке. поэтому вы должны добавить к строке, а затем вернуть ее.

HAML

плюсы

  • более кратким. нет закрывающих тегов, вписывается меньшие экраны
  • визуально более чистая структура
  • имеет встроенные помощники (haml_concat, haml_capture) для использования haml в вспомогательных методах
  • цепочки класс
  • много полезного синтаксического сахара, такого как # для divs или. для цепочки классов или: javascript для тегов JS

минусы

  • пробел зависит, что делает для некоторых трудных ошибок, чтобы выяснить время от времени
  • сложный теги обычно нужно прибегать к" хэш-формату". (Хотя я на самом деле думаю, что это отличный пример гибкости для кого-то, кто начинает это может быть боль.)
  • добавлено как драгоценный камень (опять же, вероятно, растяжка, чтобы поставить это как con)
  • дизайнеры могут иметь некоторые проблемы с адаптацией
  • в дополнение к общему предупреждению пробелов... простые ошибки пробелов, например. вкладки и пробелы для отступов могут привести к ошибкам страниц в производстве, которые обычные спецификации/тест не поймают. Мораль: ожидайте большей потребности в тестах просмотра и, возможно, не используйте haml для критически важных представлений, если вы не уверены, что ваши тесты проверяют фактическую визуализацию представления.
  • медленнее (чем erb)
    • предостережение: это ruby код, о котором мы говорим, если скорость является проблемой блокировки в вашем приложении есть альтернативы ruby, например haskell

вопрос для меня сводится к тому что бы вы предпочли поставить % перед каждым тег или | перед каждым новым блоком текста?

Slim:

 tag(attr= "value")
  | text

Haml:

 %tag{attr: "value"}
   text

еще одна вещь, которую нужно искать: haml предполагает пустое пространство между новыми строками (удалить пробелы в haml) в то время как slim не предполагает никакого пространства (добавить пробелы в Slim здесь и здесь)

https://github.com/scalp42/hamlerbslim - это независимый тест, который показывает Slim и Erb как победителей, производительность мудрая (slim имеет тенденцию уменьшать размер вывода HTML тоже.)

мое личное мнение заключается в том, что в целом, Slim и Haml сэкономят вам время (== деньги) с точки зрения обслуживания, если у вас есть Haml/Slim подкованные люди, заботящиеся о ваших взглядах.

Если у вас нет этих людей, Erb-это определенно путь, потому что, несмотря на лучшее будет в мире, есть много очень недорогих людей, которые могут работать с HTML / Erb, но найти Haml/Slim полная тайна.

лучше всего, обучите этих людей использовать Slim или, по крайней мере, подвергать их этому, и сохраните номера тех, кто "получает это."

Comments

    Ничего не найдено.