powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Шаблонизация ...
19 сообщений из 119, страница 5 из 5
Шаблонизация ...
    #39588039
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Ты тупой. Где именно у тебя задержки? Месячные? Рассказывай.я тебе уже говорил где- в левой части есть "меню" нажимаешь там на пункт, в правой данные появляются только через 5 сек.
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588041
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадядопустим. т.е. для следования этому на клиента мы должны посылать данные и там строить элементы и вставлять данные. и опять назначаем религию...
но кто вам сказал, что у меня везде строится html?
если результатом является несколько значений, которые нужно заменить — передаются только значения. если есть что—то типа модального окна со своей логикой, то передаются тоже значения и вставляются в этот «модуль».
но формировать тело таблицы это два преобразования, я предпочитаю одно.
я считаю что следовать моде это не есть хорошо.
особенно если это приводит к тормозам.

Я не это хотел сказать.
Если все равно пишите свой шаблонизатор HTML, почему-бы не оформить его в виде библиотеки.
Чтобы было типа такого (это просто для примера, не обязательно именно так):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
StringBuilder page = HTMLBuilder.
    createHedaer().addTitle("Title").
    createBody().
        createTable().
        createTr().
          createTh("Заголовок").
        createTr()
          createTd("Что-то там")
...
    .build()



P.S. А так рекомендую посмотреть в сторону Kotlin.
Там простой шаблонизатор для строк встроен в ЯП.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
const val FROM_CLAUSE = """
 FROM (
       SELECT p.LOAN_ID, p.DATE_PAYMENT, p.TOTAL_DELAY
       FROM PAYMENT p
       JOIN (
              SELECT
                p.LOAN_ID,
                MAX(p.DATE_PAYMENT) as DATE_PAYMENT
              FROM PAYMENT p
              GROUP BY p.LOAN_ID
            ) t1 ON t1.LOAN_ID = p.LOAN_ID AND p.DATE_PAYMENT = t1.DATE_PAYMENT
       WHERE 0 < p.TOTAL_DELAY AND p.TOTAL_DELAY <= 1000
     ) t2
  JOIN LOAN_PASTDUE LP ON LP.LOAN_ID = t2.LOAN_ID
  join COLLECT_STATE cs on cs.LOAN_PASTDUE_ID = LP.ID AND cs.ISACTIVE = 1
WHERE cs.ROLE IN (
  SELECT l1.ID
  FROM LIBRARYDATA l1
  WHERE l1.Label IN (
    'Строка 1'
    , 'Строка 2'
    , 'Строка 3'
    , 'Строка 4'
    , 'Строка 5'
    , 'Строка 6'
  )
)
"""

const val FIND_ALL : String =  "SELECT t2.LOAN_ID, t2.DATE_PAYMENT, t2.TOTAL_DELAY, CS.ROLE ${FROM_CLAUSE}"
const val FIND_ALL_WITH_PAGINATION = "${FIND_ALL} ORDER BY ?#{#pageable}"
const val CALC_COUNT = "SELECT count(*) ${FROM_CLAUSE}"
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588043
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulЕсли все равно пишите свой шаблонизатор HTML, почему-бы не оформить его в виде библиотеки.у меня нет как такового шаблонизатора. написать что-то вроде библиотеки - я думал над этим , но только у меня нет в проектах повторяющихся таблиц или других элементов/объектов.
если и есть похожие - то городить "библиотеку" становится дороже, потому как делать что-то чтоб и тут и там устраивало становится накладно.
у меня есть "библиотечный" элемент "выпадающий список" но если в него включить все варианты использования , которые встретились в проектах, то чтоб составить из него реальный библиотечный элемент, это надо создать такого монстра, что весь смысл теряется.
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588062
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmad_nazgulЕсли все равно пишите свой шаблонизатор HTML, почему-бы не оформить его в виде библиотеки.у меня нет как такового шаблонизатора. написать что-то вроде библиотеки - я думал над этим , но только у меня нет в проектах повторяющихся таблиц или других элементов/объектов.
если и есть похожие - то городить "библиотеку" становится дороже, потому как делать что-то чтоб и тут и там устраивало становится накладно.


Как минимум структура HTML, HTML-теги повторяются.
Писать постоянно
Код: java
1.
2.
3.
...
String aaa = "<table><tr><th>Заголовок</th></tr><tr><td>"+field+"</td><tr></table>"
...



Как минимум странно.
Когда можно выделить функции для создания создание заголовков таблицы, тела таблицы.
А т.к. там все равно строки, то можно, например, написать функцию
Код: java
1.
String createTable(String columnHead, String tableBody)


Ну и т.д.
Как минимум будете уверены, что теги закрываются. :-)

вадяу меня есть "библиотечный" элемент "выпадающий список" но если в него включить все варианты использования , которые встретились в проектах, то чтоб составить из него реальный библиотечный элемент, это надо создать такого монстра, что весь смысл теряется.

Ну есть, например, лямбды или анонимные классы, в которых можно передать конкретное поведение.
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588070
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulКак минимум будете уверены, что теги закрываются. :-)
Тут действует уже классическая отмазка - ему это не нужно, там не такие сложные страницы. :D
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588082
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulКак минимум структура HTML, HTML-теги повторяются.
Код: java
1.
String aaa = "<table><tr><th>Заголовок</th></tr><tr><td>"+field+"</td><tr></table>"


но если посмотреть внимательно - то почти в каждом тэге есть различные атрибуты, id, data-, class.
имя класса может состоять из имени + число.
data-имя=значение.
mad_nazgulА т.к. там все равно строки, то можно, например, написать функциюнаписать можно
но там цикл и если в цикле вызвать
Код: java
1.
String createTable(String columnHead, String tableBody)


то можно просто не дождаться результата.....

mad_nazgulНу есть, например, лямбды или анонимные классы, в которых можно передать конкретное поведение.конечно можно, но во что это выльется?
к примеру небольшое изменение в построении StringBuilder.
https://habrahabr.ru/post/330220/
поэтому может стоит перейти от StringBuilder к стрим?
mad_nazgulКак минимум будете уверены, что теги закрываются. :-)согласен, в этом есть трудность, и она была , но практика написания позволила сделать "методы" написания, которые свели такую проблему к минимуму.
BlazkowiczТут действует уже классическая отмазка - ему это не нужно, там не такие сложные страницы. :Dбыли и по сложнее.
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588101
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяPetro123Ты тупой. Где именно у тебя задержки? Месячные? Рассказывай.я тебе уже говорил где- в левой части есть "меню" нажимаешь там на пункт, в правой данные появляются только через 5 сек.дык ты меню ни разу не писал.
Мы твою таблу сравниваем и кендо.
А сайт может на пыхе?
Дошло? Флудер.
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588104
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадябыли и по сложнее.отмазка
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588124
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123А сайт может на пыхе?кендо? может быть, но видя такие задержки как убедить кого-то что на java будет быстрее?
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588146
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяно если посмотреть внимательно - то почти в каждом тэге есть различные атрибуты, id, data-, class.
имя класса может состоять из имени + число.
data-имя=значение.


Во первых их там не так уж и много.
Во вторых можно их загнать в Map, который можно "развернуть" внутри тега, по определенным правилам.

вадянаписать можно
но там цикл и если в цикле вызвать
то можно просто не дождаться результата.....


В чем проблема?
Почему нельзя дождаться результата?

вадяконечно можно, но во что это выльется?
к примеру небольшое изменение в построении StringBuilder.
https://habrahabr.ru/post/330220/
поэтому может стоит перейти от StringBuilder к стрим?


Так тем более.
Отдельные функции легче оптимизировать :-)
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588171
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulВ чем проблема?
Почему нельзя дождаться результата?строки, потому что со строками java работает медленно
mad_nazgulТак тем более.
Отдельные функции легче оптимизировать :-)
вот чем мне нравится мой вариант - все на одном экране.
открыл метод и всё перед глазами. если же разбить на несколько функций - возможно сам метод буде короче, но возникнут куча методов , чтоб их посмотреть надо открыт другой файл, сместиться с основной страницы кода. с другой стороны все таблицы разные, разный набор атрибутов, и получится что вынесенные функции применимы только один раз. есть ли смысл городить? если что-то городить - получится шаблонизатор, со всеми его тормозами.
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588202
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmad_nazgulВ чем проблема?
Почему нельзя дождаться результата?строки, потому что со строками java работает медленно


Так внутри можно работать со StringBuilder'ом
Это в функцию передавать/возвращать можно String.

вадяmad_nazgulТак тем более.
Отдельные функции легче оптимизировать :-)
вот чем мне нравится мой вариант - все на одном экране.
открыл метод и всё перед глазами. если же разбить на несколько функций - возможно сам метод буде короче, но возникнут куча методов , чтоб их посмотреть надо открыт другой файл, сместиться с основной страницы кода. с другой стороны все таблицы разные, разный набор атрибутов, и получится что вынесенные функции применимы только один раз. есть ли смысл городить? если что-то городить - получится шаблонизатор, со всеми его тормозами.

Набор атрибутов можно, например, хранить в Map'е
Короткие функции наоборот легче читать и понимать.
К тому же я предлагаю "шаблонные" вещи вынести в отдельные функции.
При этом логика построения HTML будет на одном экране, но кода будет чуть меньше.
А сели попытаться создать что-то типа Builder'а на цепочечных функциях, то и выглядеть будет "стильно, модно, молодежно".

Я понимаю ваше не желание рефакторить уже существующий код.
Но может стоит новый код попробовать писать по другому?
Может это окажется более эффективным?
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588224
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяUsman Вадя's Servlet Pagesмногое что в начале считали абсурдом...
Usman не соответствует ни одному из 5-ти перечисленных принципов.эти 5 принципов Прокрустово ложе? https://ru.wikipedia.org/wiki/Код_с_запашком Код с запашком ведёт к распаду кода , разработчики должны стремиться к устранению запашков путём применения однократного или многократного рефакторинга. В процессе рефакторинга происходит избавление от запахов кода, что обеспечивает возможность дальнейшего развития приложения с той же или большей скоростью. Отсутствие регулярного рефакторинга с течением времени способно полностью парализовать проект, поэтому запахи кода необходимо устранять на ранних стадиях
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588234
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman https://ru.wikipedia.org/wiki/Код_с_запашком Код с запашком ведёт к распаду кода , разработчики должны стремиться к устранению запашков путём применения однократного или многократного рефакторинга. В процессе рефакторинга происходит избавление от запахов кода, что обеспечивает возможность дальнейшего развития приложения с той же или большей скоростью. Отсутствие регулярного рефакторинга с течением времени способно полностью парализовать проект, поэтому запахи кода необходимо устранять на ранних стадиях

Ага...
Обычно наоборот все ждут героя, который разгребет весь этот навоз.
Очень редко он приходит, но действует точно так же как в мифе.
:-)
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588235
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://ru.wikipedia.org/wiki/Код_с_запашком Код с запашком ты обозвал код , и применяешь к нему определения.
так можно на любой код навесить любой ярлык.
просто потому что он не нравится тебе.
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588251
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulТак внутри можно работать со StringBuilder'ом
Это в функцию передавать/возвращать можно String.вот тут и начинается показ непонимания, куча мелких преобразований строка-StringBuilder и наоборот, в итоге тормоз
mad_nazgulНабор атрибутов можно, например, хранить в Map'е
Короткие функции наоборот легче читать и понимать.и опять из мапы через что?
mad_nazgulК тому же я предлагаю "шаблонные" вещи вынести в отдельные функции.
При этом логика построения HTML будет на одном экране, но кода будет чуть меньше.кода будет меньше на экране - возможно, но будет куча кода за экраном - куча преобразований строка-StringBuilder
mad_nazgulА сели попытаться создать что-то типа Builder'а на цепочечных функциях, то и выглядеть будет "стильно, модно, молодежно".возможно, но однозначно потеря быстродействия
mad_nazgulЯ понимаю ваше не желание рефакторить уже существующий код.
Но может стоит новый код попробовать писать по другому?
Может это окажется более эффективным?ты думаешь я огромном восторге от цепочки append? но стоит только что-то сделать возникают тормоза.
я проверял различные варианты, но этот самый быстрый. из двух зол я выбрал меньшее, на мой взгляд.
разобраться в нём как оказалось просто тут уже подтвердили примером.
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588278
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя проверял различные варианты, но этот самый быстрыйС точки зрения банальной эрудиции, самым быстрым будет байтовый буфер, отдающий данные в " собирающий " поток вывода.
Все нужные тэги уже "разложены" в отдельном месте, (строковые) данные пишем "на свободные" - красота. Только цепочки смещений обрабатывать заманаешься.
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588300
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя https://ru.wikipedia.org/wiki/Код_с_запашком Код с запашком ты обозвал код , и применяешь к нему определения.
так можно на любой код навесить любой ярлык.
просто потому что он не нравится тебе.Это определение взято из вышеупомянутой статьи хабра.
Дело не в этом даже. Основная проблема заключается в сопровождении и тестировании.
Не соблюдение принципов декомпозиции приведет к усложнению кода (того же сервлета).

Например, мне нужно исправить опечатку в разметке, придется аффектить код сервлета.
Побочный эффект от конкатенации html-разметки прямо из кода может повлечь за собой
другие ошибки... Вероятность ошибки прямопропорциональна объему "разметки в коде".

За всем не углядишь.

Другое дело, если вынести разметку во View, изменения коснуться только вьюху.
В этом случае код сервлета, выступающий в качестве Controller, не будет тронут.
...
Рейтинг: 0 / 0
Шаблонизация ...
    #39588339
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадявот тут и начинается показ непонимания, куча мелких преобразований строка-StringBuilder и наоборот, в итоге тормоз


Дык все равно в цикле делаете append-ы


вадяи опять из мапы через что?


Так тот же append в цикле

вадякода будет меньше на экране - возможно, но будет куча кода за экраном - куча преобразований строка-StringBuilder


Будет столько же, как и без функций.

вадявозможно, но однозначно потеря быстродействия


С чего?!
Код будет эквивалентен и колличество аппендов будет такое же.

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

Опять же код можно создать эквивалентным с точно таким же количеством append'ов.
...
Рейтинг: 0 / 0
19 сообщений из 119, страница 5 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / Шаблонизация ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]