Выхода нет...
Jan. 17th, 2007 03:42 pmМаркетоиды, и не только они часто заливают нам баки на тему чудодейственных средств отделения buisness-layer от presentation-layer.
Идея сама по себе неплохая. Но в Web-программировании, похоже, не реализуемая. Каки могут быть варианты (берем только динамические сайты):
1. Plain PHP (язык не важен)
у программиста не дрожит рука написать нечто вроде:
и все зашибись. Конечно, для смены дизайна надо потрудиться, но зато просто и быстро.
2. Программист решает использовать templates той или иной степени наворочености, поддавшись на рекламу (см. выше)
Без зазрения совести он фигачит .tpl файлы с фрагментами типа:
Конечно, этот код в жизни не понять дизайнеру или верстальщику, и работает он медленнее, зато "это темплейты"!
3. Программист переходит на популярный AJAX.
Он генерит из своего языка (хоть даже C++) только XML-и и отсылает их на клиент. Довольный, потирает руки - он полностью ушел от проблем представления!
А в это время другой такой же программист хреначит километровые простыни на JavaScript, где парсит XML, рисует страницу в том же самом стиле, что его собрат из примера 1 при этом тихо матеря backend.
Короче - все плохо... Так где же выход? Спросит пытливый читатель... См. Subj, отвечу я.
Ни один из подходов не достигает обозначенной цели. Разумеется, templates НЕ РАЗДЕЛЯЮТ уровни. Они разделяют разве что PHP и HTML код, попутно внося в HTML некий новый вид "кода". С теми же if-ами, циклами, переменными, функциями...
Так же и AJAX не разделяет ничего кроме клиентской и серверной части (по языкам). Вот это разделение там действительно делается на ура.
Итог - как обычно "No Silver Bullet". А вы чего ожидали?
Идея сама по себе неплохая. Но в Web-программировании, похоже, не реализуемая. Каки могут быть варианты (берем только динамические сайты):
1. Plain PHP (язык не важен)
у программиста не дрожит рука написать нечто вроде:
echo "<TR BGCOLOR=\"".$clr."\">";
echo "<TD COLSPAN=2>";
и все зашибись. Конечно, для смены дизайна надо потрудиться, но зато просто и быстро.
2. Программист решает использовать templates той или иной степени наворочености, поддавшись на рекламу (см. выше)
Без зазрения совести он фигачит .tpl файлы с фрагментами типа:
<select name='company_id'>
{html_options options=$companies selected=$company_id}
</select>
{foreach name=outer item=contact from=$contacts}
{foreach key=key item=item from=$contact}
{$key}: {$item}<br>
{$key}: {$item}<br />
{/foreach}
{/foreach}
Конечно, этот код в жизни не понять дизайнеру или верстальщику, и работает он медленнее, зато "это темплейты"!
3. Программист переходит на популярный AJAX.
Он генерит из своего языка (хоть даже C++) только XML-и и отсылает их на клиент. Довольный, потирает руки - он полностью ушел от проблем представления!
А в это время другой такой же программист хреначит километровые простыни на JavaScript, где парсит XML, рисует страницу в том же самом стиле, что его собрат из примера 1 при этом тихо матеря backend.
Короче - все плохо... Так где же выход? Спросит пытливый читатель... См. Subj, отвечу я.
Ни один из подходов не достигает обозначенной цели. Разумеется, templates НЕ РАЗДЕЛЯЮТ уровни. Они разделяют разве что PHP и HTML код, попутно внося в HTML некий новый вид "кода". С теми же if-ами, циклами, переменными, функциями...
Так же и AJAX не разделяет ничего кроме клиентской и серверной части (по языкам). Вот это разделение там действительно делается на ура.
Итог - как обычно "No Silver Bullet". А вы чего ожидали?