Comments 7
markaby
и mab
добавляют волшебства типа div.comment
в то время как arbre остается на уровне привычной рубишной семантики, но главное позволяет легко создавать компоненты.Ну, а в остальном да — похожи, могут служить неплохой заменой.
Взял пример «A simple example» с страницы Arbre на гитхабе, прогнал по бенчмаркам, чтобы сравнить с mab:
Разница в 3 раза. Это дофига! И компоненты, имхо, не стоят того. :)
bench(10_000) do
Arbre::Context.new do
h2 "Why Arbre is awesome?"
ul do
li "The DOM is implemented in ruby"
li "You can create object oriented views"
li "Templates suck"
end
end.to_s
end
# user system total real
# 2.440000 0.010000 2.450000 ( 2.450263)
bench(10_000) do
Mab::Builder.new do
h2 "Why Arbre is awesome?"
ul do
li "The DOM is implemented in ruby"
li "You can create object oriented views"
li "Templates suck"
end
end
end
# user system total real
# 0.730000 0.010000 0.740000 ( 0.735942)
Разница в 3 раза. Это дофига! И компоненты, имхо, не стоят того. :)
ИМХО конечно, но вёрстка в хелпере — такой же антипаттерн, как и код в вёрстке. считаю, что как только в хелпере и всём подобном появляется больше одного тега, их надо выносить в шаблоны. и я не раз уже наблюдал подобное:
def title(text)
"<div id='title'>#{text}</div>"
end
«кастомный элемент стало сложно понимать. В его структуре легко запутаться.»
Не согласен, все просто. А на этом утверждении строится вся статья.
Как написано комментарием выше, в примере из статьи действительно быстрее и проще использовать partial, в любом случае partial читается без словаря и копания в странных гемах. Это первый вариант.
Мы уже привыкли к haml и slim, а тут придется снова копаться в документации, чтобы протолкнуть какой-нибудь data-attribute, я это быстрее напишу в старых добрых традициях. Но это спорное утверждение, опустим, но я это вижу минусом.
Да рельсовики энтузиасты, да sass, haml, less и slim прижились в кратчайшие сроки, на столько, что в генератора coffee-rails и sass-rails лежит. Но sass, haml итп языки общего назначения. Когда arbre используется только в одном месте, и если бы я это увидел без статьи я бы поломал себе мозг, чем надолго остановил бы работу. Тем более, что давно уже не использую в работе IDE.
Вообще такими вещами лучше заниматься на этапе рефакторинга, но как сказано выше, это не самый выгодный метод, т.к. производительность хромает, а рефакторинг помимо качества кода подразумевает еще и производительность. Время покажет, возможно производительность вырастет, но что-то мне в общую успешность верится слабо. Учить еще один DSL… сомнительно.
Не согласен, все просто. А на этом утверждении строится вся статья.
Как написано комментарием выше, в примере из статьи действительно быстрее и проще использовать partial, в любом случае partial читается без словаря и копания в странных гемах. Это первый вариант.
Мы уже привыкли к haml и slim, а тут придется снова копаться в документации, чтобы протолкнуть какой-нибудь data-attribute, я это быстрее напишу в старых добрых традициях. Но это спорное утверждение, опустим, но я это вижу минусом.
Да рельсовики энтузиасты, да sass, haml, less и slim прижились в кратчайшие сроки, на столько, что в генератора coffee-rails и sass-rails лежит. Но sass, haml итп языки общего назначения. Когда arbre используется только в одном месте, и если бы я это увидел без статьи я бы поломал себе мозг, чем надолго остановил бы работу. Тем более, что давно уже не использую в работе IDE.
Вообще такими вещами лучше заниматься на этапе рефакторинга, но как сказано выше, это не самый выгодный метод, т.к. производительность хромает, а рефакторинг помимо качества кода подразумевает еще и производительность. Время покажет, возможно производительность вырастет, но что-то мне в общую успешность верится слабо. Учить еще один DSL… сомнительно.
Sign up to leave a comment.
Легкая верстка в вынужденных местах: хелперы, декораторы, элементы форм