2008-11-30 118 views
93

是否有一箇中等規模的Clojure示例應用程序可以用作「最佳實踐」示例,並且是一種很好的方式來查看代碼和代碼組織中的這種應用程序的外觀?一個Web應用程序對我來說會特別有趣,但最重要的是該程序執行一些通常有用的事情(例如博客,錯誤跟蹤,CMS),而不是我從來沒有在真實中實施的數學方法(解決N皇后問題,模擬Life,生成Fibonacci序列,以及函數式編程語言的常見功能)。中型Clojure示例應用程序?

謝謝!

+0

我會問這個完全相同的問題。這讓我想知道它在「真實世界」中的實用性如何? – ScArcher2 2008-12-09 05:20:42

+5

人們對這個「真實世界」太窒息了 – Rayne 2009-02-05 14:19:24

+0

我用它做了一個IRC Bot,它是完美的語言(性能不是問題,熱插拔插頭輸出與輸入功能相關)。對於大多數其他用途,這不是很好。 CPU浪費太多,特別是內存使用量過大,內存攪動,緩存未命中。 – 2011-12-29 08:38:57

回答

38

我推薦Brian Carper的cow-blog。根據作者的說法,它的寫法是銘記你的目的。

19

如果你瀏覽clojure-contrib源代碼,你可以看到圖書館如何用Clojure實現。

您還可以檢出「ClojureScript」同一源樹下。

允許用Clojure寫的一個很小的子集 代碼自動轉換爲JavaScript。

ClojureScript翻譯器是一個完整的Clojure應用程序。

我還建議更換檢查了斯圖爾特哈洛韋的Port of Practical Common Lisp samples to Clojure如果您還沒有。

+0

整體Clojure Contrib庫已被棄用,可以在這裏找到一組新的模塊化contrib庫:http://dev.clojure.org/display/doc/Clojure+Contrib(請注意,Clojure已經從Github上的richhickey存儲庫到官方clojure存儲庫) – 2011-11-24 02:45:19

10

檢查出由Clojure的的作者寫的螞蟻演示,豐富希基:

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

這裏有一些不錯的指令得到它設置有一個Emacs的開發環境一起:

http://riddell.us/clojure

另請參閱Rich的演示文稿以及此代碼:

http://blip.tv/file/812787

+1

當我嘗試查看源代碼時,我不斷收到重定向。奇怪的是,我似乎也無法通過谷歌找到它。 – Annan 2011-12-14 00:50:33

+1

螞蟻演示來源似乎可在:https://gist.github.com/1093917 – 2012-03-21 16:50:39

0

Clojure仍然過於年輕,並且是一個移動的目標,目標是具有可用源代碼的中型應用程序。

3

一個積極的跡象:有一個關於article on InfoQ「在大規模生產部署使用的Clojure中的第一個公佈的報告之一。」它似乎並沒有公開,但至少它是Clojure被用於真實生產領域的關鍵任務應用程序的一個標誌。 Clojure社區的一大步。

15

看看Compojure。它是一個用Clojure編寫的Web框架,因此它允許您在Clojure中編寫和運行(在嵌入式Jetty上)有用的Web應用程序,並且還可以作爲大量實際Clojure代碼的一個很好的示例。

這是正在積極發展,並設有實用Google Group

7

的Clojure本身就是Clojure的最佳做法的一個很好的例子。閱讀Core.clj的底部,好東西。

6

我認爲Compojure可能是最好的舉例。我懷疑這是一個「中等大小」的例子,但是可能有小部分是可行的。至少,這將是我的方法。 微笑

此外,檢查出

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

這是小m.u.d.客戶端原型構建在clojure中,優勢在於它完全獨立,可能非常簡單,包括涉及的概念。文檔,呃,這很正常,但代碼中的概念與M.U.D.的行動元素非常接近。可以輕鬆運行。

5

從這個問題來看,我們還有兩年的時間,雖然在語言的循環中還處於早期階段,但Clojure肯定會用於嚴肅的生產工作。在World Singles,我們有數千行Clojure正在生產中,可以在我們的網絡平臺上處理各種通用任務 - 我在Real World Clojure series上發表了博文。

對於一些相當大的開源項目 - 不完全是應用程序,但高調的基礎架構 - 您可以看看Storm from TwitterCascalog from BackType(現在是Twitter的一部分)。 4clojure.com已被提及作爲開源Web應用程序,值得一看,但請注意new github repo for 4clojure

1

我只能推薦你去看看Pedestal,這是一個非常有前途的web框架,既有服務器端也有客戶端(它有利於ClojureScript)。 gui的東西有點難以理解,但是在很多應用程序中保持理智的方式非常重要。

1

edge是一款適中的應用程序,展示瞭如何使用Clojure,ClojureScript,Component,Yada,Aero和Boot構建應用程序。