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

#ruby-on-rails #ruby #haml

#ruby-on-rails #ruby #haml

Вопрос:

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

Комментарии:

1. К вашему сведению, Perl’s Mojo и Mojolicious, которые являются эквивалентом Padrino и Sinatra, работают с HAML.

Ответ №1:

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

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

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

Комментарии:

1. Теперь я понимаю этот драгоценный камень намного яснее. Спасибо всем, кто ответил, а также спасибо за то, что оказали конструктивную помощь в решении моего «новичкового» вопроса. Я думаю, что пока я воздержусь от использования HAML, хотя, вероятно, это ненадолго. Я уже очень опытен в HTML, так что, похоже, HAML поможет мне улучшить мой код там. С учетом сказанного, похоже, комментарий @SpyrosP попал в цель: я могу потратить свое время на изучение более продуктивных вещей сейчас, а затем сосредоточить свое внимание на украшении моего кода позже.

2. Я бы согласился, что вам следует сосредоточить свое время на других, более важных концепциях, однако выбирая HAML против ERB (когда придет время) полностью зависит от вас. Однако у вас, похоже, уже есть ответ 🙂

3. 1 «HAML — это замена ERB, а не абстракция». HAML помогает избавиться от раздражающих повторений в HTML. Возможности создания шаблонов настолько похожи на ERB, что я перескакиваю туда-сюда в зависимости от проекта.

Ответ №2:

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

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

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

Ответ №3:

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

Ответ №4:

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

Комментарии:

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

2. вы использовали инструмент командной строки html2haml? Несколько раз, когда я им пользовался, казалось, что он работает довольно хорошо.

3. @cowboycoded — Проблема заключается не только в преобразовании HTML, но и в том, хотите ли вы, чтобы специалист по HTML мог редактировать ваши представления после их реализации, скажем, обновлять класс или идентификатор элемента.

4. Я понимаю, что вы имеете в виду .. имеет смысл использовать erb, если это так.

Ответ №5:

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

Ответ №6:

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

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

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

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

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

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

Ответ №7:

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

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

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

Ответ №8:

поскольку этот вопрос был задан 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 был просто предшественником, но это скорее стиль и выбор «близких тегов», а не «на основе отступов».