Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
[=[ или ]=]. И абстракция потекла…<? if ($foo) { ?>
<div><?=$foo?></div>
<? } ?>
и@if (foo != null) {
<div>@foo</div>
}
кроме удобочитаемости.myViewList = {
get content(){
if( this.items ) {
return this.items.map( item => new myViewItem( item ) )
} else {
return new myViewEmpty
}
}
}
<div type="myViewList">{content}</div>
<div type="myViewItem">
<div type="myViewItem_title">{title}</div>
<div type="myViewItem_count">{count}</div>
</div>
<div type="myViewEmpty">
List is empty. Try to reduce filters.
</div>
Прежде чем оголтело кидаться минусами, я бы советовал вам попробовать — это реально гораздо удобней.В разное время мне случалось редактировать шаблоны веб-страниц на движке Razor (который в ASP.NET MVC) и на укозе (там используются блоки, как вы предлагаете). Так вот — первая задача была выполнена за 15 минут, а вторую я бросил. Поэтому я возвращаю вам ваш совет: попробуйте делать так, как делают все нормальные люди — это реально гораздо удобней.
В современных динамичных приложениях такие блоки — далеко не единичные случаи. Даже «общего макета страницы» может не быть.Приведите пример сайта, у которого нечего вынести в общий макет (кроме одностраничных сайтов, где само слово «общий» теряет смысл). Я пока что из таких видел только одну CMS, работающую по принципу «создай все сам, редактируя БД через тот же интерфейс, который ты сейчас создаешь». Спасибо, но такая CMS должна отправиться в то же место, куда и мегаблочные спагетти-шаблоны.
В любом случае тезис похож на «я привык работать молотком, поэтому забиваю шурупы быстрее чем вкручиваю».Оба раза я видел шаблонизатор впервые.
Ещё раз — проблема не в «нарезании» — это однократная операция. Проблема в поддержке, которая нужна постоянно.Вот мне надо исправить положение имени пользователя на странице. Допустим, я как веб-разработчик уже имею опыт, но на проекте впервые, так что ничего еще в нем не знаю (сравнивать поведение человека в знакомом проекте смысла нет, потому что в обоих случаях он найдет нужное место сразу же).

Вы так и не привели примера укозного шаблона.
[list_users: "/users"]: =>
users = Users\select! -- `select` all the users
@html ->
ul ->
for user in *users
li ->
a href: @url_for("user", user.id), user.name
One-liner для компиляции шаблонов на Lua