Два вопроса по недошаблонизатору Blitz или наглядно о том, какие не должны быть шаблонизаторы

fisher

накатила суть
Топик-стартеру и всем, кто просил простейшие операции - они работают ;) Будут в релизе 0.7.1.12-dev. Код сейчас нашем корпоративном репозитории, так что релиз будет на следующей неделе. Но если кому-то неймётся - можно написать мне в личку, вышлю исходники. Семантика
{{ [IF|UNLESS] (a1)(op1)(b1) }} {{ ELSE IF (a1)(op1)(b1) }} ... {{ END }}
где (a),(b) - любые переменные или константы (работает и переменная с "путем" some.path.var, и scope_lookup),
а {op} - стандартные операции <,<=,==,!=,>=,>
 
  • Like
Реакции: AmdY

Духовность™

Продвинутый новичок
И получили мы очередной php написанный на С. вместо привычного синтаксиса PHP вы, авторы шаблонизаторов, вносите в индустрию дополнительные костыли, что бы нам, простым смертным, нужно было учить дополнительный язык пр-ия с нестандартным синтаксисом. И все ради чего? Что бы "не писать php в html"?
 

fisher

накатила суть
И получили мы очередной php написанный на С. вместо привычного синтаксиса PHP вы, авторы шаблонизаторов, вносите в индустрию дополнительные костыли, что бы нам, простым смертным, нужно было учить дополнительный язык пр-ия с нестандартным синтаксисом. И все ради чего? Что бы "не писать php в html"?
Мнение распространённое, отчасти верное. Ну про "очередной PHP" приврали, конечно - языком это вообще назвать нельзя. Почему я написал blitz в 2005-м, и почему я только в 2011-м добавил туда эти финтифлюшки - я писал выше, я не собирался этого делать, и всё, что происходит сейчас с проектом - переросло мои потребности давно. Сейчас blitz превратился в социальный эксперимент: автор последовательно "прогибается" под потребителя. Что из этого получится - мне самому интересно и я по мере сил этот эксперимент продолжаю.

Что касается "ради чего" - и тут я тоже соглашусь! Только мы по-разному воспринимаем ценность "писать PHP в HTML". Это было отличной возможностью, во многом определившей успех PHP и его популярность. Среди юниксовых "веб-языков" по-моему нет до сих пор ни одного другого, которую такую возможность даёт. Я повторю старую мысль: когда вы работаете над проектом в одиночку или в команде двух-трех человек, вы прекрасно сможете справиться по старинке, пиша "PHP в HTML". Когда вас десятки человек и проект живёт годами - вам придётся вносить дополнительные стандарты и органичения, потому что риск "нагородить" в шаблонах для вас имеет куда большее значение. "Кастрированный" язык шаблонов спасает в первую очередь большие проекты. Поэтому я и написал рядом с названием - fast and powerfull template engine for very big internet projects. Ключевые слова - very big.
 
  • Like
Реакции: atv

Andkorol

Новичок
когда вы работаете над проектом в одиночку или в команде двух-трех человек, вы прекрасно сможете справиться по старинке, пиша "PHP в HTML". Когда вас десятки человек и проект живёт годами - вам придётся вносить дополнительные стандарты и органичения, потому что риск "нагородить" в шаблонах для вас имеет куда большее значение.
Синтаксис у PHP одинаковый, что для 2-3 человек, что для 100 человек (если они владеют этим синтаксисом), и особо не меняется он с годами...
 

fisher

накатила суть
Andkorol
Синтаксис у PHP одинаковый, что для 2-3 человек, что для 100 человек (если они владеют этим синтаксисом), и не меняется он с годами...
А дело не в том, что он не меняется, а в том, что на больших масштабах (база кода, время жизни) у вас появляются такие вещи как: разделение на роли, люди с разным опытом и постоянные доделки-переделки. Но сдаётся мне, что я раздуваю очередной флейм "нужны ли шаблонные движки". Их было много. Так много, что не хочется заводить ещё один.
 

~WR~

Новичок
Просто поражает, как люди, у которых и близко нет опыта поддержки проектов масштаба *****, пытаются доказать человеку с большим опытом, что он не прав. При этом, по сути, даже не вчитываясь в его аргументы. Ну почитайте буковки, блин. Всё же написано, почему сделано так, а не иначе.

Могу рассказать на своем опыте. Последний проект был небольшой - в районе 500 файлов-шаблонов на сайтовую часть. Работало на Smarty 2.

Так некоторые новые люди пытались перетащить логику в шаблоны. Находил вычисления, сложные конкатенции, гигантские if'ы на двадцать условий.
А потом ты сиди и думай, почему у тебя не отображается блок N. И где тебе начинать отладку - в контроллере или всё же в шаблоне.
 

Andkorol

Новичок
На самом деле тут даже проблема не столько в самих "шаблонных движках" - сколько в их количестве и разнообразии в плане внутреннего синтаксиса, принципов и прочих кардинальных отличий.
По этой причине разработчик может допускать больше ошибок "на ровном месте" в работе с такими движками при смене работы/команды/проекта - попробуй-ка сразу въехать в поток, если на прошлой неделе ты работал со Smarty, на позапрошлой с Twig, а теперь вот приходится иметь дело с Blitz.
В этом есть важное преимущество использования в шаблонах "чистого PHP" - отсутствие в голове "каши" из кучи движков.
 

Push_Ok

Новичок
...
В этом есть важное преимущество использования в шаблонах "чистого PHP" - отсутствие в голове "каши" из кучи движков.
а это создает возможность превратить шаблон в мешанину всего. т.к никаких ограничений язык не накладывает, и за годы там может быть пол проекта в одном шаблоне.
 

fisher

накатила суть
Andkorol
Замечание верное - число "велосипедов" на php зашкаливает. Но это другая ценность: наличие многих подходов на рынке вообще и слабая стандартизация, но какие риски это привносит? Для работника - понятно, то одно требуется, то другое. Для работодателя риск - отсутствие каких-то навыков у "среднего" кандидата на рынке . Но большой проект он на то и большой, этот риск - фигня, мы готовы на работу брать людей вообще с другими языками, лишь бы не страдали предрассудками и готовы были полюбить PHP. А уж выучить синтаксис блока BEGIN/END и знать, что массив итераций превращает одноименный блок в цикл - на это требуется совсем немного времени.
 

Andkorol

Новичок
а это создает возможность превратить шаблон в мешанину всего. т.к никаких ограничений язык не накладывает, и за годы там может быть пол проекта в одном шаблоне.
Как нам показывает пример из опыта, приведенный ~WR~ чуть выше - использование шаблонных движков не является панацеей от говнокодеров и продуктов их жизнедеятельности.
Особо талантливые из них всё равно ухитряются изговнять шаблоны кусками своей "типа-логики"... :)

Кадры решают всё!
 

Push_Ok

Новичок
Особо талантливые из них всё равно ухитряются изговнять шаблоны кусками своей "типа-логики"... :)
Кадры решают всё!
это да.
и даже мб хуже чем больше запретить (какие то реальные ограничения шаблонизатора) в шаблоне тем больше всякого может расплодиться в конролеерах. ну тут уж ничего не поделаешь.
 

Духовность™

Продвинутый новичок
Так некоторые новые люди пытались перетащить логику в шаблоны. Находил вычисления, сложные конкатенции, гигантские if'ы на двадцать условий.
А потом ты сиди и думай, почему у тебя не отображается блок N. И где тебе начинать отладку - в контроллере или всё же в шаблоне.
когда вы работаете над проектом в одиночку или в команде двух-трех человек, вы прекрасно сможете справиться по старинке, пиша "PHP в HTML". Когда вас десятки человек и проект живёт годами - вам придётся вносить дополнительные стандарты и органичения, потому что риск "нагородить" в шаблонах для вас имеет куда большее значение.
не надо криворукость людей валить на технологию.

"Кастрированный" язык шаблонов спасает в первую очередь большие проекты.
И создает кучу геморроя. Если бы вы знали, сколько я потратил времени на работу с блитзом и какой говнокод у меня получился в PHP.. я выложу в понедельник покажу. Прежде всего меня взбесило то, что ваш шаблонизатор способствует каши из логики представления и логики приложения, что противоречит всем современным представлениям о проектировании.
 

MiksIr

miksir@home:~$
  • Like
Реакции: atv

Духовность™

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

AmdY

Пью пиво
Команда форума
Духовность™
почему ты не понял, что blitz был заменой xtemplate, а не писался как отдельный шаблонизатор и небось предполагалось что будет использоваться для ускорения legacy code, а не для новых проектов сайтов-визиток.

p.s. почистил дубли сообщений
 

Духовность™

Продвинутый новичок
Духовность™, то есть ты сам себе противоречишь? :)
я не противоречу.
блитз мои коллеги признали неудачным и неудобным решением. в первую очередь из-за не очевидного синтаксиса и ограниченных возможностей
 

MiksIr

miksir@home:~$
из 9 разработчиков все единогласно заявили, что блитз - это плохо, но мы используем его как тяжелое наследие. не надо валить на технологию, ага.
А ежики кололись, но жрали кактус. Не знаю насчет 9 никак - громкость ваших воплей заслоняет всех остальных. Что же такое блитц прищемил, что остается только орать и никак от него не избавиться.
 

Вурдалак

Продвинутый новичок
я не противоречу.
блитз мои коллеги признали неудачным и неудобным решением. в первую очередь из-за не очевидного синтаксиса и ограниченных возможностей
OK, чтобы тебе было понятнее: если все эти ребята согласятся с тем, что писать на Twig — правильно, а на pure PHP — нет, то тогда тоже можно будет смело говорить, что это технология виновата? Ты же только что сказал, что технология по определению не может быть виновата:
не надо криворукость людей валить на технологию.
 
Сверху