Является ли HAML лучшим инструментом для опытных разработчиков Ruby / Rails? - PullRequest
2 голосов
/ 12 апреля 2011

Одной из радостей того, чтобы стать новым студентом / разработчиком Ruby on Rails, является постоянное открытие новых Gems, чтобы сделать мою жизнь веселее или проще. Недавно я «открыл» HAML, который, кажется, является фантастическим инструментом для того, чтобы сделать код ERB еще более читабельным, чем он есть. Тем не менее, мне интересно, будет ли хорошей идеей для начинающих разработчиков, таких как я, использовать такой инструмент, как HAML, на раннем этапе или было бы разумнее удержаться до тех пор, пока мои знания в области простого кода Ruby / Rails не станут зрелыми. Полагаю, меня беспокоит то, что слишком раннее использование такого инструмента, как HAML, может помешать моему полному пониманию Ruby с помощью кодовых «ярлыков», которые он предлагает. Что вы, опытные программисты, говорите?

Ответы [ 8 ]

6 голосов
/ 12 апреля 2011

Это не так уж и много, что использование маршрута HAML предложит вам ярлык, потому что HAML не абстрагирует что-либо (кроме HTML), что вы могли бы пропустить иначе.HAML - это замена ERB, а не абстракция.

С учетом сказанного, я думаю, что это полностью ваше дело.Если бы вы тоже не научились, я бы выбрал оба варианта и посмотрел, какой из них вам больше нравится.Я знаю некоторых людей, которые предпочитают HAML, и некоторых людей, которые предпочитают ERB.

Еще одна вещь, на которую следует обратить внимание, это то, что в ERB есть много кода, поэтому, по крайней мере, получить общее представление о ERBполезно прочитать другой код.

3 голосов
/ 12 апреля 2011

Я бы проголосовал за последнее. По моему мнению, лучше придерживаться erb, по крайней мере, пока. Основная причина в том, что вы можете тратить свое время на изучение более продуктивных вещей, таких как тестирование, маршрутизация, REST и другие более важные вещи.

Это также вопрос вкуса. Хэмл хорош, но я нахожу эрб довольно хорошим и просто отличным для того, что мне нужно сделать. Я также думал о переходе на haml в течение некоторого времени, но в конце концов, я бы просто придерживался erb и продолжал изучать другие вопросы Rails.

Вы заметите некоторые сильные мнения по этому вопросу. Например, книга Rails Фернандеса использует исключительно haml, в то время как agile rails использует erb. Найдите то, что подходит вам лучше всего, но желательно, сделайте это после некоторого времени практики рельсов.

2 голосов
/ 12 апреля 2011

Все зависит также от вашего рабочего процесса. Если у вас есть парень по HTML, который будет делать свой HTML в HAML, это будет более полезным, чем использование статического HTML и его преобразование в HAML. Я переключился обратно на ERB с HAML, потому что преобразовать существующий HTML в ERB меньше, чем преобразовать его в HAML.

2 голосов
/ 12 апреля 2011

HAML - это абстракция HTML.Помимо проблем с пробелами, это не меняет того, как вы пишете Ruby как таковой.

1 голос
/ 11 февраля 2016

как это было задано 4 года назад, я буду кратким, я просто хочу добавить, что HAML добавляет этот бит отступа, который делает его еще более кратким, читаемым (imo) и очень похожим на «стили» coffeescript и python

- something.map do |x|
  - # ... x

против

something.map do |x|
  # ... x
end

Да, в каждую строку нужно добавить -, но это потому, что это шаблонизатор (и формат).

Такженапишите ruby, у вас есть фильтры, так что вы можете просто добавить :ruby "блоки".

:ruby
  a = 1+1
  multi = "line"
 %html
   %body
     / ...

вместо:

<%
  a = 1+1
  multi = "line"
%>
<html>
   <body> 
     <!-- ...

Потому что попытка ruby ​​без операторов end - это то, что вы можете сделатьтолько путем установки пропатченной версии ruby, haml уже используется в дикой природе, и как slim, так и jade также распространены, haml был просто предшественником, но это скорее «близкие теги» против «основанного на отступах» стиля и выбора.

1 голос
/ 12 апреля 2011

Я начал использовать HAML довольно рано, и мне это очень нравится.Хотя, как и все инструменты, он имеет свое применение.Несколько быстрых моментов

  1. Не забывайте, что вы можете иметь шаблоны HAML и ERB в одном и том же проекте ... просто измените расширение, чтобы изменить используемое.Вам не нужно фиксировать одно или другое.
  2. HAML не меняет сторону шаблонов ruby ​​/ rails ... только представление HTML, поэтому оно не должно мешать вашему обучению.
  3. HAML медленнее, чем ERB.Хотя в большинстве ситуаций это незначительно (незаметно для конечного пользователя), об этом следует помнить, если у вас есть фрагмент, который будет отображаться снова и снова.

Просто некоторые мысли.

1 голос
/ 12 апреля 2011

Вот что я бы сделал:

  1. Изучите HTML, если вы его еще плохо знаете

  2. Узнайте, как использовать erb с HTML. Это может занять у вас 30 минут. Вы просто добавляете рубиновый код в <%%>, и если вы хотите вывести значение переменной, вы используете его со знаком равенства: <% =%>. Там действительно не так много. Но, как говорили другие, вам нужно, по крайней мере, понять, как это работает, поскольку он широко используется в примерах кода представления ... и также используется в файлах yaml.

  3. Затем потратьте несколько часов на изучение HAML и используйте его вместо erb. Помимо использования erb в части JavaScript и в файлах yaml, я никогда не задумывался об использовании его после изучения HAML.

IMO, HAML намного чище, менее подвержен ошибкам и намного короче, чем написание erb. HAML закрывает для вас теги, поэтому вам не нужно помещать его в код, он заставляет вас писать правильно с отступом код и имеет несколько отличных ярлыков для добавления классов и идентификаторов в теги HTML.

Мне было бы интересно услышать любые случаи использования, когда вы, ребята, находите html.erb лучше, чем html.haml. Как я уже сказал, единственное место, где я не люблю его использовать, - это код javascript ... так как иногда мне мешают правила отступа.

1 голос
/ 12 апреля 2011

Haml - отличный инструмент, и я думаю, вам не стоит беспокоиться об его использовании. Это делает ваш HTML намного более читабельным. Это не отнимает ничего от основного рубина при обучении рельсам. Используйте это и любите это.

...