Я изучаю Rails и видел эти движки шаблонов. Опыта с ними не имею (только erb).
Но так как я новичок, я очень запутался. Какой из них вы предлагаете и почему? Эрб, Хамл или Слим? Расскажите, почему вы предпочитаете одно другому. А если у вас есть другие рекомендации, дайте нам знать.
РЕДАКТИРОВАТЬ: Я НЕ ищу здесь победителя. Я просто хочу услышать ваше мнение о них, их синтаксисе, скорости выполнения и так далее.
ruby-on-rails
haml
erb
slim-lang
Омид Камангар
источник
источник
Ответы:
ERB хорош в основном, если у вас есть веб-дизайнер, который будет работать с простым HTML и не знает ни haml, ни slim. Таким образом, он может писать HTML, а вы можете встроить рубиновую логику с соответствующими тегами.
Если вы работаете и над HTML, и над рубиновой логикой, или ваш дизайнер готов изучить что-то новое (например, HAML), я бы выбрал HAML. Он намного более дружелюбен к рубину, значительно сокращает количество символов и намного удобнее, чем ERB.
Например (взято с официального сайта HAML ):
В ERB ваше представление будет выглядеть так:
В HAML это будет выглядеть так:
Намного чище!
Что касается разницы между HAML и SLIM - я никогда толком не работал с SLIM, но думаю, это дело вкуса - взгляните на оба синтаксиса и решите, какой из них вам больше нравится. Я не думаю, что между этими двумя (HAML / SLIM) есть явный победитель.
источник
a href="foo"
.Два больших преимущества использования slim по сравнению с haml:
Slim сейчас примерно в восемь раз быстрее, чем haml.
Slim поддерживает потоковую передачу HTTP, а HAML - нет.
Slim имеет более естественный синтаксис:
a href="foo.html"
источник
Сверху моей головы это то, что я придумал
ЕРБ :
Плюсы
Минусы
HAML
Плюсы
Минусы
источник
Вопрос для меня сводится к тому, что вы предпочитаете ставить
%
перед каждым тегом или|
перед каждым новым блоком текста?Тонкий:
Хамл:
Еще одна вещь, на которую следует обратить внимание: haml предполагает пробел между новыми строками ( удалить пробелы в haml ), в то время как slim не предполагает пробела (добавьте пробелы в Slim здесь и здесь )
источник
|
для каждого блока текста,%
для каждого тега. Тегов гораздо больше, чем блоков буквального текста. Небольшая, но семантическая победа для меня с slim заключается в том, что любому необработанному буквальному html с<>
используемыми тегами предшествует явный|
. Я предпочитаю «все тонкое, если вы явно не сделаете это буквально с помощью|
« over », все будет буквально, пока вы не сделаете это с помощью a»%
.attr="value"
), а Haml больше похож на Ruby ({key: "value"}
например, на Hash).https://github.com/scalp42/hamlerbslim - это независимый тест, который показывает Slim и Erb в качестве победителей с точки зрения производительности (Slim также имеет тенденцию уменьшать размер вывода HTML).
Мое личное мнение таково, что в целом Slim and Haml сэкономит ваше время (== деньги) в плане обслуживания, если у вас будут опытные люди, которые будут следить за вашими взглядами.
Если у вас нет таких людей, Erb определенно вам подойдет, потому что, несмотря на все желания в мире, есть много очень недорогих людей, которые могут работать с HTML / Erb, но считают Haml / Slim полноценным тайна.
Лучше всего обучить этих людей использованию Slim или хотя бы познакомить их с ним, и сохранить количество тех, кто «понял».
источник