Size: a a a

2018 December 26

A

Alex in Kotlin JVM
Ruslan Ibragimov
Если в kts темплейт вынести то так и будет
это как? есть пример какой-нибудь?
источник

RI

Ruslan Ibragimov in Kotlin JVM
Alex
это как? есть пример какой-нибудь?
через скриптинг, идея простая, не уверен где готовая реализация от начала до конца есть:

1. создаем index.kts
2. кладем его на диск
3. используем jvm jsr scripring (223?) для компиляции
4. делаем компиляцию на каждый запрос
5. медленно, прикручиваем кеш ко всему этому (например на базе хеша файла)
6. done
источник

ТБ

Тимур Бухараев in Kotlin JVM
Igor
А что для "нетривиальной" верстки даёт XML, чего нет в тюринг-полном языке?
наверное теоретически можно сделать все, но на практике это сделать тяжело

например, да, отдать верстальщикам

ну или даже если сам верстаешь
надо сделать что-то, а как непонятно
гуглишь, находишь рецепт, что надо прописать такой то тег или такой то стиль
а  между тобой и конечным html в котором надо поправить еще стоит прослойка из kotlin dls и мешает
и надо теперь выяснять не только как это поправить в html, но и как это сделать через kotlin dls
источник

RI

Ruslan Ibragimov in Kotlin JVM
Тимур Бухараев
наверное теоретически можно сделать все, но на практике это сделать тяжело

например, да, отдать верстальщикам

ну или даже если сам верстаешь
надо сделать что-то, а как непонятно
гуглишь, находишь рецепт, что надо прописать такой то тег или такой то стиль
а  между тобой и конечным html в котором надо поправить еще стоит прослойка из kotlin dls и мешает
и надо теперь выяснять не только как это поправить в html, но и как это сделать через kotlin dls
Про верстальщиков все правильно, остальное это просто "не осилил", "не привычно"
источник

ТБ

Тимур Бухараев in Kotlin JVM
Ruslan Ibragimov
Про верстальщиков все правильно, остальное это просто "не осилил", "не привычно"
не соглашусь
зачем мне лишняя прослойка
быстрее работать без неё
источник

RI

Ruslan Ibragimov in Kotlin JVM
Тимур Бухараев
не соглашусь
зачем мне лишняя прослойка
быстрее работать без неё
Как ты отрендеришь список элементов в чистом html?
источник

ТБ

Тимур Бухараев in Kotlin JVM
Ruslan Ibragimov
Как ты отрендеришь список элементов в чистом html?
ну для этого шаблоны есть
источник

RI

Ruslan Ibragimov in Kotlin JVM
А шаблоны это не прослойка?
источник

ТБ

Тимур Бухараев in Kotlin JVM
они полностью совместимы с конечным html
все знания верстки которые работают в html работают и в шаблонах
источник

ТБ

Тимур Бухараев in Kotlin JVM
а kotlin dsl - это языковая прослояка со своими правилами
источник

RI

Ruslan Ibragimov in Kotlin JVM
Wrong, далеко не полностью. И куча которые очень далеки от html и при этом делать какую-то более менее удобную работу с данными в них невозможно. Но я бы рассмотрел на примере конкретного шаблонного движка, который по твоему лучше чем KDSL и сравнить + и -
источник

ТБ

Тимур Бухараев in Kotlin JVM
я имею в виду, что шаблон он и есть html
просто там добавляются некоторые дополнительные конструкции
циклы, if-ы и так далее
но в целом это все тот же html с теми же самыми правилами игры

а kotlin dsl предлагает полностью другое представление
источник

ТБ

Тимур Бухараев in Kotlin JVM
пример - ну можно тот же freemaker взять для примера, раз его тут упоминали
источник

RI

Ruslan Ibragimov in Kotlin JVM
Тимур Бухараев
я имею в виду, что шаблон он и есть html
просто там добавляются некоторые дополнительные конструкции
циклы, if-ы и так далее
но в целом это все тот же html с теми же самыми правилами игры

а kotlin dsl предлагает полностью другое представление
Подожди, т.е. ты предлагаешь прямо в коде куски HTML вставлять?
источник

ТБ

Тимур Бухараев in Kotlin JVM
нет, почему прямо в коде?
источник

RI

Ruslan Ibragimov in Kotlin JVM
> я имею в виду, что шаблон он и есть html
источник

RI

Ruslan Ibragimov in Kotlin JVM
Давай пример шаблона с циклом который рисует лист с элементами, и делает кастомный класс четным/не четным элементам
источник

ТБ

Тимур Бухараев in Kotlin JVM
ну шаблон, это же не код
источник

ТБ

Тимур Бухараев in Kotlin JVM
<html>
<body>

 <ul>
<#list items as item>
   <li>item</li>
</#list>
 </ul>

</body>
</html>
источник

RI

Ruslan Ibragimov in Kotlin JVM
У тебя проблема в том, что ты когда рендеришь на бекенде шаблон, хочется не просто три поля в плейсхолдеры закинуть, а хочешь компоненты, полноценный control-flow и вот это все. Вот и получается что либо ты берешь такую-же прослойку как KDSL, например themelyf, freemarker со своим сиснтаксисом и проблемами, или используешь KDSL со своими проблемами.

И если не нужен верстальщик, то KDSL мне больше нравится, т.к. его проблемы менее значительны и заставляют сделать правильную архитектуру
источник