О абстрагировании в Web-разработке
От: 0K Ниоткуда  
Дата: 11.02.11 19:09
Оценка:
Введение

Поведав в узком кругу о своем фреймворке
Автор: 0K
Дата: 10.02.11
, был весьма удивлен мнением некоторых людей, мол "отделять HTML-шаблон от программного кода не дает преимуществ". Главное когда Микрософт наваяли WPF -- отделение шаблона представления от кода -- было супер преимуществом. Ну ладно, речь не об этом.

Суть

И задался таким вопросом: а какая абстракция нужна для разработки Web приложений. Определим шкалу от "0" до "100":

— на "0" будет полнейшая смесь html кода -- грубо говоря, склеиваем HTML из отдельных констант и вставляем динамическое содержимое.
— на отметке "100" будет некий свой язык разметки (типа XAML) с серверными событиями, эмуляцией логики JavaScript с помощью серверного кода (все это дело компилируется (или генерирует в процессе работы) в HTML и JavaScript). Словом -- никакой связи с HTML.

Ежу понятно, что истина где-то по середине, обе крайности для практического использования не пригодны. Как вы считаете, до какой степени нужно абстрагировать процесс Web-разработки? Что вы видите в идеале?

P.S.
Не обсуждаем RIA-приложения, только те которые на выходе выдают клиенту HTML-код.
Re: О абстрагировании в Web-разработке
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 11.02.11 19:50
Оценка: 43 (5)
отделять вообще ничего не имеет особого смысла, а имеет смысл — выделение отдельных граней.
отделение приводит к тому, что потом при решение реальной задачи приходится тратить кучу ресурсов на преоделение настроенных ранее барьеров

например, css — хорошо смотрится, благодаря тому, что его функционал лишь выделен из html-я, а не отделен (всё(значимая часть) что делается через css, можно в один-один сделать прямо в html-аттрибутах)

ps
wpf плох тем, что он отделен(фундаментально огорожен) от c#.
в c# — хрен запишешь один в один wpf-дерево (из-за невозможности объявления имен по месту), а в wpf — хрен запишешь связи.

ззы
твой framework еще хуже, т.к. у тебя html совсем "фундаментально огорожен" от динамической генерации.
Re[2]: О абстрагировании в Web-разработке
От: fddima  
Дата: 11.02.11 20:48
Оценка: +1 -1
Здравствуйте, DarkGray, Вы писали:

DG>твой framework еще хуже, т.к. у тебя html совсем "фундаментально огорожен" от динамической генерации.

Более того, он у него требует феноменальных затрат ресурсов (парсинг, построение DOM, сериализация).
Re[2]: О абстрагировании в Web-разработке
От: 0K Ниоткуда  
Дата: 12.02.11 02:45
Оценка:
Здравствуйте, DarkGray, Вы писали:

DG>ззы

DG>твой framework еще хуже, т.к. у тебя html совсем "фундаментально огорожен" от динамической генерации.

Поясните, пожалуйста. Здается мне, что вы не поняли идеи.
Re[3]: О абстрагировании в Web-разработке
От: 0K Ниоткуда  
Дата: 12.02.11 02:46
Оценка:
Здравствуйте, fddima, Вы писали:

DG>>твой framework еще хуже, т.к. у тебя html совсем "фундаментально огорожен" от динамической генерации.

F> Более того, он у него требует феноменальных затрат ресурсов (парсинг, построение DOM, сериализация).

Бред. Я же сказал -- работает быстрее стандартных jsp-шаблонов. Я его уже использую на реальном сайте и наблюдаю за нагрузкой.
Re[3]: О абстрагировании в Web-разработке
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.02.11 05:15
Оценка: +1
Здравствуйте, 0K, Вы писали:

DG>>ззы

DG>>твой framework еще хуже, т.к. у тебя html совсем "фундаментально огорожен" от динамической генерации.

0K>Поясните, пожалуйста. Здается мне, что вы не поняли идеи.


Идея не плохоая, хотя не ты ее первым предожил.

Но исполнение просто безобразно. Императивное манипулирование ДОМ-ом — это задница.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: О абстрагировании в Web-разработке
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 12.02.11 05:30
Оценка: +1
0K>Поясните, пожалуйста. Здается мне, что вы не поняли идеи.

попробуй прикинуть какое кол-во статического html-я есть в каком-нибудь gmail-е, или хотя бы ozon.ru, или в каком-нибудь конструкторе: cms, движок форума и т.д.
соответственно в таких проектах — задачи вида: дать верстальщику возможность редактировать статический html вообще не стоит.
есть лишь задача — как бы простым способом редактировать динамический html, или другими словами — как из одного места уметь записывать и куски html-я и правила их клонирования и объединения.

ps
static html нужен только в задачах аля "это мой крутой homepage".
Re[4]: О абстрагировании в Web-разработке
От: 0K Ниоткуда  
Дата: 12.02.11 13:56
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Идея не плохоая, хотя не ты ее первым предожил.


Ссылки в студию! Прежде чем делать что-то я попытался найти готовое. Не нашел.

VD>Но исполнение просто безобразно. Императивное манипулирование ДОМ-ом — это задница.


Императивный подход, хоть он и не "модный", проще. Именно по этому на практике 90% кода императивного. Он гибок и прост. Кроме того, я могу его абстрагировать и некоторые части задавать декларативно.
Re[4]: О абстрагировании в Web-разработке
От: 0K Ниоткуда  
Дата: 12.02.11 14:00
Оценка: 6 (1) :))) :)))
Здравствуйте, DarkGray, Вы писали:

DG>попробуй прикинуть какое кол-во статического html-я есть в каком-нибудь gmail-е, или хотя бы ozon.ru, или в каком-нибудь конструкторе: cms, движок форума и т.д.


Вы поняли хоть как оно работает?

DG>соответственно в таких проектах — задачи вида: дать верстальщику возможность редактировать статический html вообще не стоит.


Дизайнер будет редактировать ДИНАМИЧЕСКИЕ ШАБЛОНЫ, а не просто статический HTML. Это моя уникальная и неповторимая разработка, которая через несколько лет завоюет весь мир Web-разработки, только естественно у меня ее украдут и скажут что сами придумали.

DG>есть лишь задача — как бы простым способом редактировать динамический html, или другими словами — как из одного места уметь записывать и куски html-я и правила их клонирования и объединения.


Вы что прикидываетесь? Именно ЭТО я и сделал!!! Именно это и решает мой фреймворк и решает.

DG>static html нужен только в задачах аля "это мой крутой homepage".


Какой статик? Вы что? Мой фреймворк как раз определяет простейшие принципы манипулирования динамическими шаблонами. Собственно он так и называется "Dynamic Template".
Re[5]: О абстрагировании в Web-разработке
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.02.11 15:02
Оценка: -1 :)
Здравствуйте, 0K, Вы писали:

0K>Ссылки в студию! Прежде чем делать что-то я попытался найти готовое. Не нашел.


Ссылку на Lift тебе уже давали. До этого тоже не мало подобных идей было.

VD>>Но исполнение просто безобразно. Императивное манипулирование ДОМ-ом — это задница.


0K>Императивный подход, хоть он и не "модный", проще. Именно по этому на практике 90% кода императивного. Он гибок и прост. Кроме того, я могу его абстрагировать и некоторые части задавать декларативно.


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

Пилите Шура, пилите. Она злотая (с) Ильф и Петров
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: О абстрагировании в Web-разработке
От: 0K Ниоткуда  
Дата: 12.02.11 17:56
Оценка: :))) :))
Здравствуйте, VladD2, Вы писали:

VD>Ссылку на Lift тебе уже давали. До этого тоже не мало подобных идей было.


Поясните что общего у этого спагетти с моим фреймворком? Мой фреймворк можно сравнить разве что с ASP.Net, только лишенного его главного недостатка -- излишней абстрагированности.

Фишка в том, что НИКТО еще не высказывал подобной идеи. Хотя бы то, что доступ к элементам происходит по id и работа с документом с помощью быстрого DOM-парсера. А работа со списками (в т.ч. с вложенными) в моем фреймворке заслуживает особого внимания: никто не смог сделать так просто и гибко.
Re[7]: О абстрагировании в Web-разработке
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.02.11 08:58
Оценка: +4
Здравствуйте, 0K, Вы писали:

VD>>Ссылку на Lift тебе уже давали. До этого тоже не мало подобных идей было.


0K>Поясните что общего у этого спагетти с моим фреймворком?


Ты довольно наглый и весьма невежественный человек. От того пояснить тебе что-то очень сложно. Надеюсь, что это по молодости и со временем пройдет.

Я попробую, но боюсь, что попытка будет тщетной.

Общее у вас то, что в шаблонах лежит чистый XML (нет кода), и оба подхода используют идею трансформации имеющегося контента, а не идею вставки кода в шаблон и формирование контента путем выполнения этого кода.

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

0K>Мой фреймворк можно сравнить разве что с ASP.Net, только лишенного его главного недостатка -- излишней абстрагированности.


Вот с ASP.Net у вас мало общего, на мой взгляд. Или тогда уж и Lift тоже можно сравнивать.

0K>Фишка в том, что НИКТО еще не высказывал подобной идеи.


Очень смешно.

Все что ты придумал — это использовать сто лет известный подход, применяемый в броузерах, но на стороне сервера.

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

0K>Хотя бы то, что доступ к элементам происходит по id и работа с документом с помощью быстрого DOM-парсера. А работа со списками (в т.ч. с вложенными) в моем фреймворке заслуживает особого внимания: никто не смог сделать так просто и гибко.


Просто ты не потрудился изучить чужой опыт.

В прочем, с удовольствием послушал бы про работу со списками. Может и правда у тебя есть что-то интересное.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: О абстрагировании в Web-разработке
От: 0K Ниоткуда  
Дата: 13.02.11 12:27
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Общее у вас то, что в шаблонах лежит чистый XML (нет кода), и оба подхода используют идею трансформации имеющегося контента, а не идею вставки кода в шаблон и формирование контента путем выполнения этого кода.


Да, в этом небольшое сходство есть.

Но у меня нет жесткой связи. Нет необходимости (и простой возможности) вставлять HTML-теги в код -- связь только по Id. У Lift мне в глаза сразу бросилась смесь HTML и кода на стороне кода. У меня такого нет.

P.S.
Для оживления атмосферы люблю прибегнуть к "красному словцу".
Re: О абстрагировании в Web-разработке
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.02.11 13:20
Оценка: +1 -1
Здравствуйте, 0K, Вы писали:

0K>Введение


0K>Поведав в узком кругу о своем фреймворке
Автор: 0K
Дата: 10.02.11
, был весьма удивлен мнением некоторых людей, мол "отделять HTML-шаблон от программного кода не дает преимуществ". Главное когда Микрософт наваяли WPF -- отделение шаблона представления от кода -- было супер преимуществом. Ну ладно, речь не об этом.


не сравнивай свой фреймворк с WPF. У меня есть один проект на WPF. там вообще нету ни одного Id или имени элемента, нету ни одной строчки императивной логики в коде. Правильный код на WPF настолько сильно отличается от твоего, что на твой даже смотреть тошно.


0K>И задался таким вопросом: а какая абстракция нужна для разработки Web приложений. Определим шкалу от "0" до "100":


0K>- на "0" будет полнейшая смесь html кода -- грубо говоря, склеиваем HTML из отдельных констант и вставляем динамическое содержимое.

0K>- на отметке "100" будет некий свой язык разметки (типа XAML) с серверными событиями, эмуляцией логики JavaScript с помощью серверного кода (все это дело компилируется (или генерирует в процессе работы) в HTML и JavaScript). Словом -- никакой связи с HTML.

0K>Ежу понятно, что истина где-то по середине, обе крайности для практического использования не пригодны. Как вы считаете, до какой степени нужно абстрагировать процесс Web-разработки? Что вы видите в идеале?


Ты не то и не от того отделяешь. Гораздо важнее отделение логики от представления, а не представления от логики. Барьер должен быть развернут в другую сторону.
Представление меняется чаще всего и очень хорошо было бы если бы эти изменения оставались на уровне представления.
Re: О абстрагировании в Web-разработке
От: mogadanez Чехия  
Дата: 13.02.11 13:33
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Введение


0K>Поведав в узком кругу о своем фреймворке
Автор: 0K
Дата: 10.02.11
, был весьма удивлен мнением некоторых людей, мол "отделять HTML-шаблон от программного кода не дает преимуществ". Главное когда Микрософт наваяли WPF -- отделение шаблона представления от кода -- было супер преимуществом.



ты настаиваешь на полном отсутствии логики в html
в wpf это не так. в xaml вполне себе есть логика.
Re: О абстрагировании в Web-разработке
От: out-of-the-way США www.tehnoromantik.net
Дата: 13.02.11 13:43
Оценка:
Мне кажется тут все абстракции будут маленько "дырявыми", а что-то притянуто "за уши", потому что они строятся на основе простой вещи запрос-ответ и больше не чего.
Мне как разработчику хочется вообще не видеть html(недолюбливаю его) и при этом иметь возможность самому без напрягов сделать более-менее нормальный вид сайта.
Программа — мысли спрессованные в код.
Re[2]: О абстрагировании в Web-разработке
От: 0K Ниоткуда  
Дата: 13.02.11 22:02
Оценка: +1
Здравствуйте, out-of-the-way, Вы писали:

OOT>Мне как разработчику хочется вообще не видеть html(недолюбливаю его) и при этом иметь возможность самому без напрягов сделать более-менее нормальный вид сайта.


Так используйте готовые CMS -- в чем проблема. Все равно кому-то нада работать с HTML. Нельзя в вебе от этого уйти.
Re[9]: О абстрагировании в Web-разработке
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.02.11 15:40
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Да, в этом небольшое сходство есть.


Уже прогресс.

0K>Но у меня нет жесткой связи. Нет необходимости (и простой возможности) вставлять HTML-теги в код -- связь только по Id. У Lift мне в глаза сразу бросилась смесь HTML и кода на стороне кода. У меня такого нет.


В шаблонах у них тоже нет кода. А то что у них есть возможность использовать микро шаблоны ХМЛ-я из кода, так это как раз большое благо для программиста. Все равно будешь вынужден манипулировать (формирвоать/заменять) ХМЛ-ем из своего кода. И очень важно, чтобы это было просто и удобно. Делать это через DOM API очень и очень сложно.

Есть несколько подходов урастить манипуляцию DOM-ом. Один из них DSL формирования ХМЛ-я и паттерн-матчинг. Именно это и пспользовано в Lift-е. Только это сделано за счет того, что поддержка ХМЛ-я встроена прямо в язык. Так что на шарпе тебе это не грозит. Другой подход можно назвать XSLT-шным. Когда производится трасформация ХМЛ-я на основе отдельных правил трансформации (близких к декларативным).

0K>P.S.

0K>Для оживления атмосферы люблю прибегнуть к "красному словцу".

Если бы ты для оживления дела еще анализировал что тебе говорят и не отбрасывал бы сказанное только на основании того, что не понял или не привык, то конструктива было бы больше.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: О абстрагировании в Web-разработке
От: out-of-the-way США www.tehnoromantik.net
Дата: 14.02.11 16:22
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Здравствуйте, out-of-the-way, Вы писали:


OOT>>Мне как разработчику хочется вообще не видеть html(недолюбливаю его) и при этом иметь возможность самому без напрягов сделать более-менее нормальный вид сайта.


0K>Так используйте готовые CMS -- в чем проблема. Все равно кому-то нада работать с HTML. Нельзя в вебе от этого уйти.


Готовые это не интересно.
Программа — мысли спрессованные в код.
Re[10]: О абстрагировании в Web-разработке
От: Курилка Россия http://kirya.narod.ru/
Дата: 14.02.11 17:47
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, 0K, Вы писали:


0K>>Да, в этом небольшое сходство есть.


VD>Уже прогресс.


0K>>Но у меня нет жесткой связи. Нет необходимости (и простой возможности) вставлять HTML-теги в код -- связь только по Id. У Lift мне в глаза сразу бросилась смесь HTML и кода на стороне кода. У меня такого нет.


VD>В шаблонах у них тоже нет кода. А то что у них есть возможность использовать микро шаблоны ХМЛ-я из кода, так это как раз большое благо для программиста. Все равно будешь вынужден манипулировать (формирвоать/заменять) ХМЛ-ем из своего кода. И очень важно, чтобы это было просто и удобно. Делать это через DOM API очень и очень сложно.


VD>Есть несколько подходов урастить манипуляцию DOM-ом. Один из них DSL формирования ХМЛ-я и паттерн-матчинг. Именно это и пспользовано в Lift-е. Только это сделано за счет того, что поддержка ХМЛ-я встроена прямо в язык. Так что на шарпе тебе это не грозит. Другой подход можно назвать XSLT-шным. Когда производится трасформация ХМЛ-я на основе отдельных правил трансформации (близких к декларативным).


Ну стандартное лифтовое типа:
bind("person", xhtml, "name" -> "Mads", "consumption" -> bindConsumption _)

думаю вполне можно на шарпе повторить более-менее, и поддержка XML-литералов в языке какой-либо роли тут не играет.
А вот повторить более свежие CSS Selector Transforms будет чуть сложнее. Это по-моему ближе к тому, что 0K описывает.
А по сути подход Lift и есть фактически XSLT-шный ибо сниппеты (фича близкая к контроллерам в традиционном подходе) по сути есть функция NodeSeq => NodeSeq (xml -> xml в терминах скалы).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.