Нуар против композитора?
У меня проблемы с пониманием смысла библиотеки Noir Clojure. Кажется, это фреймворк, написанный поверх compojure, который переименовывает defroute в defpage и называет его днем. Очевидно несправедливое упрощение, но что именно Нуар приносит на стол? Почему я должен использовать Noir вместо простого compojure + hiccup?
РЕДАКТИРОВАТЬ / ОБНОВИТЬ: Noir устарела, интересно написать здесь: http://blog.raynes.me/blog/2012/12/13/moving-away-from-noir/.
4 ответа
Compojure - это небольшая платформа, которая генерирует обработчики запросов / ответов Ring, где обработчики выбираются на основе определенных вами маршрутов.
Noir добавляет функциональность для обработки сеансов, файлов cookie, шаблонов и партиалов, упрощенного способа генерирования ответов, проверки формы, фильтров маршрутов, зашифрованных паролей, JSON (де) сериализации и пользовательских страниц состояния. Другими словами, Noir объединяет Compojure, Hiccup и кучу других умных вещей в одном пакете.
Нуар на самом деле не замена для [compojure и hiccup], а скорее абстракция над ними. Он родился из-за того, что я видел, как развивалось настоящее веб-приложение и чего не хватало в стеке ring/compojure/hiccup, когда я создавал http://www.typewire.io/. Кроме того, как я упоминал в одном из других комментариев, я надеюсь, что он послужит единым "пакетом" для начала веб-разработки в Clojure, вместо того, чтобы пытаться собрать его воедино из кусочков, которые сейчас существуют. Управляя всем этим, я могу создать гораздо более сплоченную и четко определенную историю, чтобы помочь людям начать работу. Я также могу поделиться тем, что я узнал о ведении веб-сайтов в Clojure, и, надеюсь, рекомендовать шаблоны, позволяющие избежать некоторых ям, в которые я попал.
(акцент мой)
Noir, рамки были устарели самим владельцем Noir.
Он предлагает использовать Compojure и lib-noir:
Для новых сайтов, пожалуйста, используйте Compojure и lib-noir. Это в значительной степени так же, как батареи, включенные, как когда-либо был сам Noir! Вам просто нужно научиться писать маршруты с помощью Compojure. Это легко и так же кратко, как и в Нуаре. Вам не нужно использовать ring-jetty-adapter и прочее, просто используйте плагин lein-ring для запуска вашего сервера. Кроме того, если вы воспользовались Noir, в том числе по умолчанию, икота, у вас теперь будет явная зависимость от него. Не важно, верно? Правильно!
Вы всегда можете проверить API на веб-сайте webnoir.org. Существует много дополнительных функций, кроме defpage
,