Комментарии 17
По моему без знания html и css не обойтись. Соответствующие dsl только предоставляют более простой синтаксис, а семантику знать надо.
А DSL я так понимаю компилируемые? Т.е. при ошибке в шаблоне проект не скомпилируется?
Да, и это не перестаёт радовать, помимо прочих плюшек DSL.
Да, макросы выполняются во время компиляции.
Не знаю насчет garden, но hiccup не проверяет на предмет ошибок. Т.е. если вместо
Сильно подозреваю, что с garden аналогично, не запихивать же постоянно в нее поддержку новых экспериментальных css-свойств и подобного.
div
написать diiv
— так оно и отрендерится. Ну и генерировать структуры данных для скармливания hiccup-у можно в рантайме, хотя используя макросы библиотека и пытается сделать прекомпиляцию, где это возможно.Сильно подозреваю, что с garden аналогично, не запихивать же постоянно в нее поддержку новых экспериментальных css-свойств и подобного.
Большое спасибо за статью, как раз интересовала инфраструктура для веб-проектов в Clojure. Буду пристально вглядываться в библиотеки, которые вы упомянули.
Добавьте пожалуйста сортировку языков, а то русский найти проблема
Из-за множественных закрывающих скобок в конце где-то на подсознательном уровне код такого вида
когда на него посмотришь, как будто говорит «Ну что написал? Ну-ну :))))))»
(.on input "typeahead:closed" (fn []
(reset! query (.val input))))))
когда на него посмотришь, как будто говорит «Ну что написал? Ну-ну :))))))»
Спасибо за статью, приятно видеть все возрастающий интерес к Clojure. Я так понимаю, у вас была задача попробовать побольше всего разного что напридумывали в Clojure?
Вместо defapi сделали бы middleware и обернули свои API routes в него.
Вместо js-obj в новых clojurescript версиях удобно писать #js [1 2 3] или #js {:a 1 :b 2} чтобы получить нативные js-объекты.
Зачем нужен dsl для css не очень понятно — у вас css динамический разве?
Размер скомпилированного js-файла тоже хотелось бы увидеть в gzipped варианте и с advanced compilation. А то у меня например весь datascript в 39 кб умещается, а тут аж 290
Вместо defapi сделали бы middleware и обернули свои API routes в него.
Вместо js-obj в новых clojurescript версиях удобно писать #js [1 2 3] или #js {:a 1 :b 2} чтобы получить нативные js-объекты.
Зачем нужен dsl для css не очень понятно — у вас css динамический разве?
Размер скомпилированного js-файла тоже хотелось бы увидеть в gzipped варианте и с advanced compilation. А то у меня например весь datascript в 39 кб умещается, а тут аж 290
Я так понимаю, у вас была задача попробовать побольше всего разного что напридумывали в Clojure?Да, хотел попробовать clojure для web'а.
Зачем нужен dsl для css не очень понятно — у вас css динамический разве?Статический, garden использовал только для того, чтобы всё было на clojure, это как некий челенж был.
Размер скомпилированного js-файла тоже хотелось бы увидеть в gzipped варианте и с advanced compilation. А то у меня например весь datascript в 39 кб умещается, а тут аж 290290 и так в advanced, но там внутри reagent, react и jayq.
gzipped — 80
А такой вопрос, чем компилировали clojurescript в js? Использовали там grunt, минификаторы, или ещё что-то?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как я написал web-приложение, используя только clojure