![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 3 Всего: 144 |
Недавно пришла в голову вот какая мысль, а ведь можно разработать программную модель для всех HTML элементов, и создавать страницы, используя код примерно такого вида:
Я не хочу сказать, что это было бы очень удобным способом программирования стрвниц, но если не доводить сей подход до крайности и абсурда, а использовать отдельные HTML элементы в таком представлении для автоматизации отдельных задач (например, автогенерация HTML форм из метаданных), то такая вещь в связке, например, с шаблонным движком - могла бы расширить арсенал программиста. Ну и вот. Так вот я и думаю, наверняка кто-то такое уже разрабатывал. Не может быть, что такая очевидная идея не пришла в голову еще кому-нибудь. Поэтому вопрос: если слышали про такие штуки - колитесь, пожалуйста |
|||
|
||||
| simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: нет Всего: 36 |
Для определенных задач вполне удобно. В Ruby такое есть и, не скрою, это иногда очень помогает.
-------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
| Шмель |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.4.2004 Репутация: 5 Всего: 18 |
Element Construction Set - похоже на то, что ты описываешь. При использовании получается такой код:
--------------------
будешь на Земле - заходи |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 8 Всего: 118 |
А разве тема Velocity не о таком варианте ? Хотя я давно очень читал - может и не понял точно все тогда.
|
|||
|
||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 3 Всего: 144 |
Нет-нет, это совсем разные вещи. Я говорю о библиотеке, где все HTML элементы были бы представлены в виде классов: Head, Body, P, UL, LI, Table, TR, TD и т. д. А про Velocity - обязательно напишу. Похоже, народ так и не понимает, в чем от него кайф. А кайф - огромный! Шмель - в самую точку. Администрация, прошу представить товарища к награде |
|||
|
||||
| simanyay |
|
||||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: нет Всего: 36 |
А мы всё ждём-с...
Награждён почетным орденом "+". -------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
||||
|
|||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 3 Всего: 144 |
Георгиевский крест? |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 11 Всего: 151 |
Что? Крест имени меня? Спасибо, конечно, но, право же, не стоит...
Stampede Есть закрепленный топик на тему Velocity: http://forum.vingrad.ru/index.php?showtopic=44988. Есть желание - дополни, скажу спасибу. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 3 Всего: 144 |
Дак, я ж знаю. Я же именно там и обещался. И выполнил - встречайте: Для чего же все-таки нужна Velocity |
|||
|
||||
| Stampede |
|
||||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 3 Всего: 144 |
Кстати, вот пример ситуации, где подобный класс будет весьма полезным. Посмотрите на тег <head>. В динамическом проложении он, как правило, хранится в отдельном файле и подключается при помощи какой-нибудь include в той или иной форме форме.
Но содержимое тега <head> само по себе переменное и зависит от страницы. Хорошо, если изменяется только Title, тогда все относительно просто. А что если нужен разный Content-Tipe, например в многоязыковом проекте? А что если CSS подключается разный? А если нужно больше одного CSS файла? Передавать списком и итерировать в коде шаблона? Плюс та же фигня с мета параметрами http-equiv. Не слишком ли громоздко получится? А теперь представим, что у нас есть класс Head с такими методами:
Тогда мы запросто все это можем подготовить в классе, отвечающем за подготовку данных для шаблона, а в самом шаблоне просто одной строчкой сослаться на объект класса Head:
По соглашению Velocity при такой записи вызывается метод toString() ссылемого объекта. Который в случае класса Head должен делать то, что от него и ожидается: рендерить себя в HTML. Куль? Да, куль. Тут опять надо заметить, что наиболее естественным образом такой фокус можно осуществить, если приложение спроектировано в идеологи Velocity (см. статью о Velocity) Теперь смотрим на то, как класс Head реализован в библиотеке Jakarta ECS (Element Construction Set). А очень тупо он реализован. Слшком общО. Описания API в Javadoc в онлайне для него не нашел, поэтому привожу по той документации, что идет в пакете:
Нахера?! Вы же не generic API создаете, у вас же конкретная библиотека классов. Сделайте так, чтобы ею было удобно пользоваться! Дайте мне convenience методов. Чтобы можно было одной строчкой добавить CSS или там HttpEquiv - неужели так трудно? И ведь явно для себя писали, не для дяди, а вот поди ж ты. Короче, блин, как меня это уже задрало. Ни на кого нельзя положиться, все приходится делать самому. И буду делать. А кому щас легко |
||||||
|
|||||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 3 Всего: 144 |
[выжидательно смотрит] |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 11 Всего: 151 |
Domestic уже сказал
Просто я так и не поверил, что это лучше, чем использовать Expression Language. Но это уже мои проблемы. Потом пощупаю сам и решу. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Stampede |
|
||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 3 Всего: 144 |
Так давайте же обсуждать! Я же завершаю статью приглашением к обсуждению. В этом ведь главный пойнт нашего здесь тусения. А может я действительно неправ? Может, я чего-то важного не понимаю в этой жизни?
Я, между прочим не о регалиях, а о простом человеческом спасибе, которое было обещано. Старался, как-никак -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
||||
|
|||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 11 Всего: 151 |
Спасибо! И даже большое!
А насчет обсуждения - пока я сам не попробовал, я не смогу квалифицированно вести дискуссию. Так что обождем. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: нет Всего: 36 |
-------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
| Sleepy_PIP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 3 Всего: 12 |
чего я не понял в статъе:
"Например, event-driven подход к программированию гуя - это инверсный подход по сравнению с тем, когда ты всю логику программируешь в классе окна, ждешь всяких событий и как-то на них реагируешь." извините, но я не понимаю - а что - логику обработки UI окна надо рассредотачивать во вне класса окна? Не, в Делфи отличный подход - рекомендую. либо я чего-то не понимаю, либо звиняйте речь идет об обрабоке события нажатия на кнопку в окне в совсем другом классе ... но это-ж маразм? ЗАЧЕМ растаскивать обработку кнопки в окне в совсем други классы, когда это с удовольствием делается в классе окна с вызовом прочей сторонней бизнес-логики. ну не понимаю я ... -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java tools & IDE's | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |