Пример применения Clojure среднего размера? - PullRequest
94 голосов
/ 30 ноября 2008

Существует ли примерное приложение Clojure среднего размера, которое можно использовать в качестве примера "передового опыта", и хороший способ увидеть, как такое приложение будет выглядеть с точки зрения кода и организации кода? Веб-приложение было бы особенно интересно для меня, но самое главное, что программа делает что-то обычно полезное (например, блог, отслеживание ошибок, CMS), а не что-то математическое, что мне никогда не приходилось реализовывать в реальной жизни. мир (решение проблемы N-ферзей, симуляция жизни, генерация последовательностей Фибоначчи и другие обычные языки программирования функций).

Спасибо!

Ответы [ 14 ]

40 голосов
/ 14 декабря 2009

Я рекомендую коровий блог Брайана Карпера. По словам автора, это было написано с вашей целью.

19 голосов
/ 30 ноября 2008

Если вы просматриваете исходный код clojure-contrib , вы можете увидеть, как библиотеки реализованы в clojure.

Вы также можете оформить " ClojureScript " в том же дереве исходного кода.

Позволяет писать код очень маленьким подмножество Clojure для автоматического перевода на JavaScript.

Переводчик ClojureScript - это полноценное приложение Clojure.

Я бы также рекомендовал проверить Порт Практических Стандартных Лисп Стюарта Хэллоуэя на Clojure , если вы еще этого не сделали.

15 голосов
/ 11 февраля 2009

Взгляните на Композитор . Это веб-фреймворк, написанный на Clojure, поэтому он позволяет вам писать и запускать (на встроенной Jetty) полезные веб-приложения на Clojure, а также служит хорошим примером значительной части реального кода Clojure.

Он находится в активной разработке и имеет полезную Группу Google .

10 голосов
/ 30 ноября 2008

Ознакомьтесь с демонстрацией муравьев, написанной автором Clojure Ричем Хики:

http://clojure.googlegroups.com/web/ants.clj

Вот несколько хороших инструкций по настройке вместе со средой разработки emacs:

http://riddell.us/clojure

Также ознакомьтесь с презентацией Рича, которая сопровождает этот код:

http://blip.tv/file/812787

7 голосов
/ 16 июля 2009

Clojure сам по себе является хорошим примером лучших практик Clojure. Читайте в нижней части Core.clj, хорошие вещи.

6 голосов
/ 07 мая 2011

http://4clojure.com

4Clojure - это веб-сайт с открытым исходным кодом , где вы можете решать интерактивные проблемы Clojure, заполняемые в пустых местах.

5 голосов
/ 24 ноября 2011

У нас два года на этот вопрос, и, хотя язык еще находится на ранней стадии цикла, Clojure определенно используется для серьезной производственной работы. В World Singles у нас есть несколько тысяч линий Clojure в производстве, которые выполняют всевозможные задачи общего назначения на нашей веб-платформе - я писал об этом в своей серии Real World Clojure .

Для некоторых достаточно крупных проектов с открытым исходным кодом - не только приложений, но и высокопрофильной инфраструктуры - вы можете посмотреть Storm из Twitter и Cascalog из BackType (теперь часть Twitter) , 4clojure.com упоминается как веб-приложение с открытым исходным кодом, на него тоже стоит обратить внимание, но обратите внимание на новое github-репо для 4clojure .

5 голосов
/ 23 июля 2009

Я думаю, что Compojure, вероятно, лучший способ привести пример. Я сомневаюсь, что это пример «среднего размера», но, вероятно, есть небольшие подразделы, которые сработают. По крайней мере, таков будет мой подход. улыбается

Кроме того, проверить

http://github.com/technomancy/mire/tree/master

, который является небольшим m.u.d. клиентский прототип, встроенный в clojure, преимущество в том, что он полностью автономен и, вероятно, довольно прост, включая используемые концепции Документация, да, это нормально, но концепции в коде очень тесно связаны с элементами действия M.U.D. Это легко.

2 голосов
/ 15 октября 2009

Вы можете посмотреть здесь: http://bitbucket.org/kumarshantanu/blogjure/overview/

Это крошечное приложение для блога, написанное с использованием Hibernate, Compojure и StringTemplate, которое действительно работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...