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