#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:
Вот что я бы сделал:
-
Изучите HTML, если вы еще плохо его знаете
-
Узнайте, как использовать erb с HTML. Это может занять у вас 30 минут. Вы просто помещаете код ruby внутрь <% %>, и если вы хотите вывести значение переменной, вы используете его со знаком равенства: <%= %>. На самом деле в нем не так уж много. Но, как говорили другие, вам нужно хотя бы понимать, как это работает, поскольку оно так широко используется в примерах кода view… и он также используется в файлах yaml.
-
Затем потратьте несколько часов на изучение HAML и используйте его вместо erb. Помимо, возможно, использования erb в частичных компонентах javascript и в файлах yaml, я никогда не думал дважды об его использовании после изучения HAML.
ИМО, HAML намного чище, менее подвержен ошибкам и намного короче, чем написание erb. HAML закрывает теги за вас, поэтому вам не нужно вставлять его в свой код, он заставляет вас писать код с правильным отступом и имеет несколько отличных ярлыков для добавления классов и идентификаторов в HTML-теги.
Мне было бы интересно услышать о любых вариантах использования, в которых вы, ребята, находите html.erb лучше, чем html.haml. Как я уже сказал, единственное место, где я не люблю его использовать, — это код javascript … поскольку я нахожу, что правила отступов иногда мешают.
Ответ №7:
Я начал использовать HAML довольно рано, и мне это действительно нравится. Хотя, как и у всех инструментов, у него есть свои применения. Несколько кратких замечаний
- Не забывайте, что у вас могут быть шаблоны HAML и ERB в одном проекте… просто измените расширение, чтобы изменить используемое. Вам не нужно привязываться к тому или иному.
- HAML не изменяет сторону шаблонов ruby / rails… только представление HTML, поэтому это не должно препятствовать вашему обучению.
- 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 был просто предшественником, но это скорее стиль и выбор «близких тегов», а не «на основе отступов».