Шаблонный движок

  • Автор темы Автор темы makvik
  • Дата начала Дата начала
Идея выноса css в отдельный файл в том чтобы избежать излишней дублируемости стилей.

cDLEON
Слышал звон да не знаешь где он, поэтому сидишь и крошишь на всех булочку. Найди себе девушку.

atv
Стараюсь. Собственно квики и разрабатывается работая на продакшене поисковика.

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

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

Я не говорю, что это хорошо или плохо. Я просто обращаю внимание на факты.

triumvirat, не надо устраивать войну. Оба подхода имеют право на существование. У обоих есть достоинства и недостатки.

Явной логики в шаблоне может и не быть.
Тогда в чем суть таких шаблонов, если все опять завязано на программисте?
видимо, в чем-то другом.

-~{}~ 21.01.08 14:45:

ой ё. там ещё три страницы. мамадорогая.
 
cDLEON
ты не думал что логика она всё равно никуда исчезнуть не может? её можно лишь поместить в разные места... так что что-нибудь да полюбому разрастётся...
 
ну мне кажется это просто лишние согласования, покрывающие недостатки вашего подхода...
Мой подход предполагает использование абстракций для того чтобы справляться с нарастающей сложностью приложений.

По условиям ТЗ к системе, поле "Возраст" должно иметь три состояния: "несовершеннолетний", "совершеннолетний" и "пенсионер". Состояние пенсионер зависит от пола: для мужчин после 60, для женщин после 55. В зависимости от состояния поля "Возраст", оно должно отображаться разным цветом.

При моём подходе, в приложении эта логика отработает во время события onShow, и объекту присвоится определённый класс CSS, в зависимости от состояния. А верстальщик подготовит три стиля для каждого состояния.

Возможное развитие событий:
1. От заказчиков поступило требование поменять цвет поля для какого-то состояния - верстальщик правит CSS файл.

2. От заказчиков поступило требование, при котором вёрстка становиться зависимой от состояния поля - верстальщик правит XSL шаблон, добавляет ещё один шаблон <xsl:template match="age[@class = 'pensioner']">, в котором содержится необходимая вёрстка.

3. От заказчиков поступило требование добавить для поля "Возраст" ещё одно состояние - программист правит обработчик события onShow для данного поля, верстальщик правит CSS файл, добавляет ещё один стиль.

Какие недостатки ты видиш в этом подходе?
 
atv
а, я тебя понял... ты всё это время обсуждал не вообще подход в целом, а только применительно к твоему маленькому ТЗ...
в нем и логики то практически нет, так что к твоему ТЗ он вполне подходит, но ты щас подменил понятия "в этом подходе" и "в этом подходе применительно к данной задаче"

-~{}~ 21.01.08 15:18:

Автор оригинала: cDLEON
бред. А какой у тебя подход? У тебя 1-на килобайтный шаблон с помощью логики разрастается в несколько ?
и кстати, если для тебя главный критерий - минимальный вес шаблона - я привел пример как сделать идеальный для тебя вариант...
PHP:
<html>
   {body}
</html>

всего 3 строчки, и никогда не разрастется... а уж куда ты прячешь всю логику чтоб ничё не разрасталось - это уже другой вопрос...
 
atv
В зависимости от контекста, я бы передал в шаблон пол и возраст и там уже разруливал, либо сделал бы поле куда бы положил флаг пенсионер ли он.
 
Beavis
Ты мне не ответил на самый главный вопрос. К которому я вёл.
Какой смысл разрабатывать СВОЙ псевдоязык шаблонов для псевдоязыка шаблонов?
 
WP
в такой простой задаче не имеет особого значения где именно провести грань и что где обрабатывать...
когда задача усложнится, к примеру не цветом выделять, а для несовершеннолетних показать флеш-мультик, для совершеннолетних - картинку какую-нибудь, а для пожилых чтоб таблица с пенсиями отображалась, тогда уже придется подумать...
 
Слышал звон да не знаешь где он, поэтому сидишь и крошишь на всех булочку.
Опять двадцать пять...Я ни кого кроме тебя, о величество, не трогаю. Это так...К слову.
Я прекрасно знаю логику шаблонизаторов похожих на смарти. Все они велосипеды чистой воды. На котором, учят ездить дизайнеров. Это просто смешно уже.
ЗЫ. Сразу не увидил :D
 
Автор оригинала: cDLEON
Beavis
Ты мне не ответил на самый главный вопрос. К которому я вёл.
Какой смысл разрабатывать СВОЙ псевдоязык шаблонов для псевдоязыка шаблонов?
зачем его разрабатывать? меня вполне устраивают управляющие конструкции PHP для этих целей... я тоже не понимаю людей которые сами шаблонизаторы делают...
 
ты всё это время обсуждал не вообще подход в целом, а только применительно к твоему маленькому ТЗ...
в нем и логики то практически нет, так что к твоему ТЗ он вполне подходит
А по существу что-нибудь будет, кроме этого слива?

либо сделал бы поле куда бы положил флаг пенсионер ли он.
Уж лучше пол, чем флаг, так как в этом случае логика разбивается на две части, приложение по логике выставляет флаг, а шаблон проверяет состояние флага.

Но мне больше нравиться написать "<xsl:template match="age[@class = 'pensioner']">", в котором уже зашита НЕЯВНАЯ логика.

-~{}~ 21.01.08 14:39:

когда задача усложнится, к примеру не цветом выделять, а для несовершеннолетних показать флеш-мультик, для совершеннолетних - картинку какую-нибудь, а для пожилых чтоб таблица с пенсиями отображалась, тогда уже придется подумать...
И ты это собираешся пихать в шаблон ??? О_о

А вообще, смотри вариант 2 "Возможного развития событий:" - этот вариант учитывает то о чём ты говоришь.
 
Автор оригинала: atv
А по существу что-нибудь будет, кроме этого слива?
ты смешной такой) тебе реально кажется что все против тебя в штыки идут?)
я же написал по-русски, ответив на твой вопрос, что недостатков в твоем подходе применительно к твоей задаче, я не вижу...
что ты ещё хочешь услышать, чтоб я вышел из себя, начал кричать, или что?)) что я должен сливать?) я вообще это спором не считаю (вроде ни на что не спорим)...
просто обсуждение - хотел услышать + и - обоих подходов, но пока услышал только про размер шаблона, и про какие то нелепые только что придуманные интерфейсы..

-~{}~ 21.01.08 15:47:

Автор оригинала: atv
А вообще, смотри вариант 2 "Возможного развития событий:" - этот вариант учитывает то о чём ты говоришь.
я просто в XSL'е не очень силен, т.к. ещё не научился теги закрывать, как я уже говорил... приведи пример если не сложно
 
> по сути, логика в этом статусе все равно есть.
> просто она не прописана явно. но она есть.

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

-~{}~ 21.01.08 15:55:

> я же написал по-русски, ответив на твой вопрос,
> что недостатков в твоем подходе применительно к твоей задаче, я не вижу...

а применительно к какой задаче ты видишь недостатки?
 
ты смешной такой) тебе реально кажется что все против тебя в штыки идут?)
Интересная формулировка... Мне реально кажется что ты потерял нить обсуждения и теперь беспорядочно клацаеш по клавиатуре. Значит тебе нечего сказать.
 
dark-demon
ох.
это спор, по большей части, терминологический.
но, тем не менее.
вот, смотри:
<!-- BEGIN: books -->
{author}{title}
<!-- END: books -->
<!-- BEGIN: nobooks -->
<p>There are no books to display.</p>
<!-- END: nobooks -->

если есть книга - выводит автора и заголовок. если нету - пишет, что нету.
это логика. здесь подразумевается логика. это if...else. просто неявное, а договоренное. договренное устно между верстаком и программилой.
Но она есть. В шаблоне. циклы и условные переходы - на каждом шагу.
 
dark-demon
если уж далеко от этого КСС'а не уходить, создание нового представления данных, например в формате отличном от HTML, да или пусть даже в том же самом HTML, но при глобальном изменении дизайна с рефакторингом всего КСС'а , да или даже как вариант вообще без его использования, затронет не только логику представления, но и ту, что в целях экономии 2 Кбайт перенесли на попечительство программисту...

-~{}~ 21.01.08 16:09:

Автор оригинала: atv
Интересная формулировка... Мне реально кажется что ты потерял нить обсуждения и теперь беспорядочно клацаеш по клавиатуре. Значит тебе нечего сказать.
А что мне ещё говорить, если на 1 твой вопрос я уже 2 раза ответил...
Но видишь, почти одинаковые вопросы в мою сторону продолжаются, я отвечаю...
Я на протяжении нескольких страниц хочу услышать что-нибудь новое, а не спорить на форуме с теми, для кого это хобби.
 
такие дискуссии были бы куда полезнее, если бы их участники не переходили на личности.
если бы при обоюдном непонимании были ориентированы на поиск взаимопонимания. а не наоборот
 
если уж далеко от этого КСС'а не уходить, создание нового представления данных, например в формате отличном от HTML
Верстальщик правит XSL шаблон.

да или пусть даже в том же самом HTML, но при глобальном изменении дизайна с рефакторингом всего КСС'а
Верстальщик правит CSS, не меняя при этом имена классов, а зачем, если количество состояний не изменилось.

да или даже как вариант вообще без его использования
Верстальщик правит XSL шаблон. Стили из CSS файла переносит непосредственно в XSL шаблон.

затронет не только логику представления, но и ту, что в целях экономии 2 Кбайт перенесли на попечительство программисту...
Не затронет. Только при изменении функциональности, например добавлении ещё одного статуса в моём предыдущем примере.
 
Фaнaт, в том-то и дело, что это два разных шаблона: "выводим информацию о книге" и "выводим информацию о том, что книг нет". в зависимости от переданных данных выводится либо один шаблон, либо другой, либо оба, либо ни один из них.
 
atv
А вот фишер придерживается интересной точки зрения.
Он считает, что шаблоном должен быть блиц (только блоки), который верстает верстак. именно верстает, а не программирует.
а при необходимости отитерировать новый блок, он свистит программилу, который слушает задание и пишет код-обработчик.

говорит, что это очень эффективно при работе над большими проектами.

-~{}~ 21.01.08 16:20:

если я правильно его понял, разумеется!

-~{}~ 21.01.08 16:21:

dark-demon
правильно. но эти шаблоны выводятся "в зависимости от...". это условный переход.
в чистом виде. поэтому речь не о том, есть ли логика, а в том, кто её обрабатывает.
 
Сверху