Подтвердить что ты не робот

Хорошие примеры кода Clojure?

Я в первый раз проверяю Clojure. Мне было полезно посмотреть на (doc xxx) и (source xxx) в основной библиотеке Clojure, но я больше беспокоюсь о том, как вы могли бы организовать и собрать полное приложение.

Есть ли отличные примеры с открытым исходным кодом?

Например, чтобы научиться хорошо программировать на Java, я могу посмотреть исходный код Spring или что-то подобное.

4b9b3361

Ответ 1

Проекты с открытым исходным кодом Clojure:

  • Compojure - веб-фреймворк (поскольку вы упомянули Spring)
  • Ring - API абстракции HTTP
  • Incanter - R-подобные статистические вычисления и графическая среда
  • Leiningen - инструмент сборки для Clojure
  • Clojure-Contrib - вы упомянули основную библиотеку, но вклад, безусловно, стоит посмотреть также.
  • Enclojure - Clojure Средство IDE (используется с Netbeans/Redcar)
  • Counterclockwise - Плагин Eclipse для Clojure
  • 4Clojure - Веб-сайт с интерактивными проблемами заполнения Clojure

Несколько сообщений в блоге, объясняющих приложения Clojure размером с укусом:

Ответ 2

http://corfield.org/blog/archives.cfm/category/clojure

Этот парень делает блог, который, среди прочего, содержит серию статей о "реальных примерах clojure". Я думаю, что это одно из лучших мест для такого рода вещей, потому что статьи не просто предоставляют исходные файлы для чтения, он часто затрагивает конкретные практические проблемы, сначала описывает их, обоснование выбора clojure, и обоснование выбора конкретного способа делать вещи в каждой статье. (И затем некоторые фрагменты кода также.) Это дает гораздо более эклектичный взгляд на сами примеры и лучшее понимание не только What and How, но Why.

(Возможно, вам захочется немного прокрутиться в архивах, у него много статей clojure, которые сами по себе хороши, но этот пост особенно верен в отношении упомянутой серии "real world clojure", которая начинается с такими статьями, как http://corfield.org/blog/post.cfm/real-world-clojure-email-status-tracking)

Ответ 3

Я нахожу, что рассмотрение проекта .clj для большинства этих проектов - хороший первый шаг в получении хорошей идеи о базовых библиотеках, на которые эти проекты опирается. В основном, если одна из наиболее популярных и широко используемых библиотек с открытым исходным кодом, например Compojure, использует определенные базовые библиотеки, такие как Ring в случае Compojure, я могу затем сосредоточиться на том, как используются базовые библиотеки. Вот как я хорошо понял, как работает Ring middleware, и это помогло мне понять, что Noir работал, и позволил мне также понять, как можно заменить что-то вроде Grizzly для Jetty или как реализовать что-то вроде OAuth 2, используя только промежуточное ПО.