У меня возникли определенные трудности при создании веб-приложения на основе Clojure. Это простое приложение CRUD, которое я начал изучать в веб-экосистеме Clojure. Я экспериментирую с разными библиотеками, такими как Hiccup, Enlive, Compojure и Noir (хотя похоже, что Noir находится на грани отказа от поддержки).
Мой вопрос состоит из двух вопросов. Во-первых, это очевидное отсутствие соглашений для создания веб-приложений на закрытии. А во-вторых, мне нужны подсказки по созданию «богатых» html-компонентов.
Что мне нравится в методе Clojure, так это простота совместной работы разных библиотек. Замена enlive на икоту и наоборот - не проблема. Все играет свою простую и единственную роль. Очень сильно отличается от такой сложной структуры, как JSF.
Но в этом суть: эта огромная свобода заставляет меня чувствовать себя немного потерянным. В JSF я знаю, где всему есть свое место. Я использую Spring для интеграции всех компонентов, Spring-Security для обработки всего сеанса. Библиотеки компонентов избавляют меня от стресса, связанного с проблемами html, javascript и ajax.
В Clojure мне не хватает вышеупомянутых библиотек компонентов. Я обнаружил, что реализую такие вещи, как datatable с такими функциями, как чередование цветов строк, разбиение на страницы, порядок столбцов, инкрементный фильтр и так далее. И у меня возникают вопросы о том, как синхронизировать состояние таких компонентов в браузере и на сервере, особенно когда включен ajax. Я не смог найти в сети сколько-нибудь зрелого ответа.
Преимущество фреймворков: как только вы поймете правила и ограничения, вы можете создать свое приложение и сосредоточиться на бизнес-правилах. Техническая инфраструктура решена и не должна отвлекать.
Какие предложения есть для мира Clojure? Является ли ClojureScript One решением? Я еще не изучал это. Кто-нибудь знает какие-либо библиотеки компонентов, которые предлагают аналогичные функции, такие как, например, RichFaces datatable? Есть ли предпочтительный способ работы с ajax?