Сообщение от B~Vladi
|
Они разделены, смотри пример выше.
|
А, меня просто твои "исключения, выкидываемые методами получения данных (ручка)" сбили с толку.
Сообщение от B~Vladi
|
Я не знаю уже как объяснять. Мы, походу, о разных вещах говорим.
Вызвал функцию с аргументом - числом. Функция ожидала строку. Либо функция сама падает (например, пытается применить к аргументу метод строки), либо она проверяет тип и выкидывает исключение. Т.е. это то же самое, что и ошибка программиста, о которой ты писал выше.
|
О, отлично объяснил. Я правда такими вещами не заморачиваюсь
Сообщение от B~Vladi
|
Если ты про это говорил, то всё разделено. Если нет - расскажи на примере что ты имел ввиду.
|
если это то, о чем я думаю, то я говорил про разделение по файлам. Ну или хотя бы на две части в пределах файла: сначала код, потому - шаблон. А у тебя в перемешку.
Сообщение от B~Vladi
|
Тем более, в том же Dust можно вызывать функции и обрабатывать от них результат.
|
О, а как?
Сообщение от B~Vladi
|
Любой шаблон на самом деле код. Тем более в JS. Почему, когда ты пишешь конструкцию в стиле Mu, ты не относишься к этому как к коду? Или я чего-то не до понял?
|
есть код с состоянием (
императивный) и побочными эффектами, а есть
декларативный (функциональный) код.
Сообщение от B~Vladi
|
А мне не нравится такой подход. Мне страшно представлять огромное дерево данных. Особенно, когда они максимально соответствуют структуре представления. Пока никаких веских аргументов я не увидел (или плохо смотрел?), кроме религиозных убеждений. Из всего нашего диалога мне больше всего интересно узнать по-че-му надо так а не так? Я правда хочу знать, открой мне глаза
|
1) я не говорю ограничиваться пассивным подходом, я говорю: "мухи отдельно, котлеты - отдельно", шаблон - без кода, код (вид) - без разметки; и я говорю: не надо писать код с помощью разметки (Вовочка, не качайся на папе, он не для того повесился); при этом каждый шаблон+вид могут принимать данные как пассивно, так и активно;
2) моя религия (читабельность, разделение обязанностей) ни чем не хуже твоей (по-меньше дергать кодера);
3) у меня складывается впечатление, что ты все что я говорю (по-крайней мере в последнее время) ты списываешь на религию, это так?
Сообщение от B~Vladi
|
Ох. Ну где я записываю код разметкой? Вызовы методов?
|
они самые
Сообщение от B~Vladi
|
Кстати циклы (итераторы, ага), ифы, вызовы функций есть в каждом приличном шаблонизаторе. Чем мой от них отличается?
|
и любишь же ты авторитетом давить, не своим, так чужим. Миллионы шаблонизаторов не могут ошибаться? Важно не то, что они что-то реализовали, а почему они это реализовали. Если тебе эта возможность нужна - используй.
Сообщение от B~Vladi
|
Хм. Поэтому не нравится? Т.е. если мне это не надо - то говно. Так получается?
|
Сообщение от x-yuri
|
Мне-то точно не нравится, это у верстаков надо спрашивать...
|
Точнее кодеров спрашивать. Где я сказал говно? Я говорю, что передо мной не стоят твои проблемы и расскащываю, какие проблемы стоят передо мной. Хотя не то чтобы проблемы, скорее свои приоритеты.
Сообщение от B~Vladi
|
Что это даст? Реального, для работы. Я скажу что даст - лишний этап, который нужно контролировать отдельно. Я каждый день с этим сталкиваюсь и могу сказать - это не удобно. Для меня. Я как раз-таки и хочу совместить эти этапы для упрощения.
|
Ну если для тебя это проблема, ее надо решать. Я ж не против.
Сообщение от B~Vladi
|
Требую пример кода декларативного шаблона и аналогичный код из моего, что бы были видны отличия.
Если не использовать некоторые конструкции в моем шаблонизаторе, то он ничем не будет отличаться от Mu или Dust.
|
декларативный - в котором если и вызываются функции, то для преобразования, а не получения данных
да, давай приведу пример:
Пример: 1.xml
<?xml version="1.0" encoding="UTF-8"?>
<ten:root xmlns:ten="TEN" xmlns="http://www.w3.org/1999/xhtml">
<ten:block>
<ten:query method="getOnline" params="error, data">
<ten:each object="data" item="user">
<ten:echo data="user.name" />
</ten:each>
</ten:query>
</ten:block>
</ten:root>
и как-нибудь так:
Пример: 1.mustache
{{#onlineUsers}}
{{name}}
{{/onlineUsers}}
Пример: 1.js
this.onlineUsers = getOnline();