19
ERB vs HAML vs SLIM Так ли хорош старый добрый ERB (HTML), если есть что-то получше?

Erb vs haml vs slim

  • Upload
    -

  • View
    4.336

  • Download
    5

Embed Size (px)

DESCRIPTION

Erb vs haml vs slim

Citation preview

Page 1: Erb vs haml vs slim

ERB vs HAML vs SLIM

Так ли хорош старый добрый ERB (HTML), если есть что-то получше?

Page 2: Erb vs haml vs slim

ERB vs HAML или SLIM

Page 3: Erb vs haml vs slim

А если серьезно…

Преимущества HAML и SLIM перед ERB

• Более читабельный код представлений.• Теги автоматически закрываются, нельзя пропустить закрывающий тег.• Вывод ошибок.

Недостатки HAML и SLIM перед ERB

• Один тег на строку. Большая длина строк при большой вложенности элементов.

• Ниже производительность.• Дополнительные зависимости.

Page 4: Erb vs haml vs slim

Пример SLIM

doctype htmlhtml head title Rubydev = stylesheet_link_tag "application", :media => "all" = javascript_include_tag "application" = csrf_meta_tags

body header .center h1 Development with Rails h5 and other technologies = render partial: "devise/devise_links" = render partial: "layouts/navigation" section{width=“720px”} .center = yield

footer | © RubyDev 2012-2013

Page 5: Erb vs haml vs slim

Пример HAML

!!! 5%html %head %title Rubydev = stylesheet_link_tag "application", :media => "all" = javascript_include_tag "application" = csrf_meta_tags

%body %header .center %h1 Development with Rails %h5 and other technologies = render partial: "devise/devise_links" = render partial: "layouts/navigation" %section(:width => “720px”) .center = yield

%footer | © RubyDev 2012-2013

Page 6: Erb vs haml vs slim

Великий и ужасный ERB<!DOCTYPE html><html> <head> <title>Rubydev</title> <%= stylesheet_link_tag "application", :media => "all" %> <%= javascript_include_tag "application" %> <%= csrf_meta_tags %> </head> <body> <header> <div class="center"> <h1>Development with Rails</h1> <h5>and other technologies</h5> <%= render partial: "devise/devise_links" %> <%= render partial: "layouts/navigation" %> </header>

<section width="720px"> <div class="center"> <%= yield %> </div> </section>

<footer> &copy; RubyDev 2012-2013 </footer> </body></html>

Page 7: Erb vs haml vs slim

Заметили ошибку?<header> <div class="center"> <h1>Development with Rails</h1> <h5>and other technologies</h5> <%= render partial: "devise/devise_links" %> ??? <%= render partial: "layouts/navigation" %></header>

Page 8: Erb vs haml vs slim

Синтаксический сахар. Такой сладкий-сладкий.

#articles<div id="articles"></div>

.article<div class="article"></div>

P (Slim)<p></p>

%P (HAML)<p></p>

Page 9: Erb vs haml vs slim

Интерполяция

p Hello #{@user.name}! или %p Hello #{@user.name}!Вместо:<p>Hello <%= @user.name %>!</p>

Фильтры

javascript: alert(“Welcome to rubydev.ru");

markdown: #Hello #{“@user.name"} !

… textile, ruby, coffeescript, plain, sass, scss, lesscss, RedCloth, Haml, etc.(thanks to Tilt)

Page 10: Erb vs haml vs slim

… и много других улучшений синтаксиса в сравнении с ERB

(HTML)

Page 11: Erb vs haml vs slim

Haml, Slim = быстрая разработка

Page 12: Erb vs haml vs slim

HAML vs SLIMПреимущества HAML

• Более распространен.• Теги четко выделены.• Лучше документация.• Есть возможность создавать собственные фильтры.

Преимущества SLIM

• Больше фильтров благодаря Tilt.• Больше производительность.• Позволяет писать несколько тегов в одну строку (лучше не злоупотреблять)

Page 13: Erb vs haml vs slim

Мнения разработчиковМое мнение:

Я использовал и Haml и Slim. Первым был Haml, затем Slim. Разница не велика. Haml/Slim позволяют мне писать более чистый код, код, который легче читать и поддерживать, код, который просто из-за того, что лишнее выброшено быстрее писать. В HTML легко можно допустить ошибку, Haml/Slim не дают разработчику ошибаться, 100% тегов будут закрыты!

Page 14: Erb vs haml vs slim

Мнения разработчиковПо поводу альтернатив HTML/CSS могу сказать следующее:

В своей работе я использую Haml и SCSS и они меня вполне устраивают.Работать с шаблонизаторами альтернативными ERB – Haml или Slim очень удобно. Работа с ними становится гораздо приятнее. Помню как в первый свой раз, используя Haml, я верстал и наслаждался процессом, не чувствовал усталости от разработки. С Haml и SCSS работа как отдых.

-- Евгений Жлобо, front-end разработчик, фрилансер

Page 15: Erb vs haml vs slim

Мнения разработчиковERB меня совсем огорчает, а вот HAML радует. Для себя я выделяю несколько причин, почему HAML лучший выбор:

• Закрывать теги давно уже не модно,• структура хамл исключает ошибки вложенности html тегов,• скорость разработки,• гибкость оформления кода и параметров,• легкость парсинга мозгом тегов и текстовой информации (в отличие от

Slim, где теги и текст очень тяжело отличить друг от друга)

-- Илья Зыкин – фронтэнд разработчик из kupibilet.ru

Page 16: Erb vs haml vs slim

Мнения разработчиковВсе новые проекты Hashrocket мы разрабатываем используя HAML и мы собираемся перенести все существующие в нашем портфолио проекты на HAML как можно быстрее. Разметка кода основанная на отступах работает просто замечательно для генерации чистого и семантичного кода в такой способ, когда вы можете ясно видеть разметку и ее связь с CSS кодом. Это очень круто!

-- Оби Фернандез (http://blog.obiefernandez.com/content/2008/01/are-you-using-h.html)

Page 17: Erb vs haml vs slim

Хорошо, но как перевести существующий код на Haml/Slim? Это ведь очень долго!

Нет, не долго!https://github.com/dhl/erb2haml,

https://github.com/fredwu/haml2slim,etc.

Page 18: Erb vs haml vs slim

ВыводИспользуйте Haml/Slim

Page 19: Erb vs haml vs slim

Все еще хочется поспорить?

ERB HAML/SLIM