中型Clojure样品应用程序?


96

是否有一个中等大小的Clojure示例应用程序可以用作“最佳实践”示例,并且是一种查看这种应用程序在代码和代码组织方面是什么样的好方法?Web应用程序对我来说尤其有趣,但最重要的是该程序执行了一些通常有用的操作(例如,博客,错误跟踪,CMS),而不是我从未真正实现过的数学操作世界(解决N皇后问题,模拟生命,生成斐波那契数列以及此类函数式编程语言的常见用法)。

谢谢!


我要问这个完全相同的问题。这让我想知道它在“现实世界”中的实用性
ScArcher2

5
人们对这个“现实世界”
感到

我用它制作了一个IRC Bot,它是它的完美语言(性能不是问题,热插拔插件,输出与输入-函数无关紧要)。对于大多数其他用途来说,效果不是很好。过多的CPU浪费,尤其是过多的内存使用,内存搅动,高速缓存未命中。
RokL 2011年

Answers:


42

我推荐牛博客布赖恩·卡珀。根据作者的说法,这是出于您的目的而写的。


截至2018年,cow-blog并未按照说明进行编译。lein deps失败,并显示以下消息:```从clojars检索gaka / gaka / 0.1.0 / gaka-0.1.0.pom尝试使用不带TLS的不安全HTTP存储库。几乎可以肯定这是一个错误;但是在极少数情况下有意lein help faq使用它,请参阅参考资料。尝试使用不带TLS的不安全的HTTP存储库。几乎可以肯定这是一个错误;但是,在极少数情况下有意使用的情况,请参阅lein help faq有关详细信息。```
Teodor

19

如果浏览clojure-contrib源代码,则可以看到如何在clojure中实现库。

您还可以在同一源代码树下签出“ ClojureScript ”。

允许将用Clojure的很小一部分编写的代码自动翻译为JavaScript。

ClojureScript转换器是一个完整的Clojure应用程序。

如果您还没有的话,我也建议您将Stewart Halloway的Port of Practical Common Lisp样本检查到Clojure


不建议使用单块的Clojure Contrib库,而推荐使用以下一组新的模块化contrib库:dev.clojure.org/display/doc/Clojure+Contrib(请注意,Clojure已从Github上的richhickey存储库移至官方clojure储存库)
肖恩·科菲尔德

15

看看Compojure。这是一个用Clojure编写的Web框架,因此它允许您在Clojure中编写和运行(在嵌入式Jetty上)有用的Web应用程序,并且还可以作为大量实际的Clojure代码的一个很好的例子。

它正在积极开发中,并拥有一个有用的Google网上论坛


1
由于现在大多数代码都已从Compojure Ring移走了,所以现在可以看看。
mac

很多的Compojure的HTML生成的代码现在是(打嗝的一部分,我相信github.com/weavejester/hiccup
mikera

10

查看由Clojure的作者Rich Hickey编写的ant演示:

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

这是一些与emacs开发环境一起安装的很好的说明:

http://riddell.us/clojure

还要查看Rich的演示文稿以及以下代码:

http://blip.tv/file/812787


1
当我尝试查看源代码时,我一直在重定向。奇怪的是,我似乎也无法通过Google找到它。
AnnanFay 2011年

看起来blip.tv链接现在位于youtube.com/watch?v=dGVqrGmwOAw上,我认为代码的描述大约在演示文稿的1小时24分钟左右开始。
罗杰·艾伦

7

Clojure本身就是Clojure最佳做法的一个很好的例子。阅读Core.clj的底部,好东西。



5

我认为Compojure可能是举个例子的最好方法。我怀疑这是一个“中等大小”的示例,但其中的一些小部分可能会起作用。至少,这将是我的方法。 微笑

另外,退房

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

这是一个用clojure内置的小型泥浆客户原型,优点是它是完全独立的,并且可能非常简单,包括所涉及的概念。文档,这很正常,但是代码中的概念与易于运行的MUD的操作元素紧密相关。


5

我们距离这个问题还有两年的时间,尽管对于语言来说还处于早期阶段,但Clojure肯定会用于严肃的生产工作。在World Singles,我们有数千条Clojure产品正在生产中,可处理Web平台中的各种通用任务-我在《Real World Clojure》系列中对此进行了博客撰写

对于一些相当大的开源项目-并非完全是应用程序,而是高调的基础结构-您可以查看Twitter的StormBackType(现在是Twitter的一部分)的Cascalog。已经提到4clojure.com是一个开放源代码Web应用程序,这也值得一看,但请注意4clojure新github存储库


3

一个积极的信号:在InfoQ上一篇有关“ Clojure在大规模生产部署中使用的首批已发布报告之一” 的文章。它似乎不是开放的,但至少表明Clojure已在实际生产环境中用于关键任务应用程序中。Clojure社区迈出了一大步。




1

我只建议您检查一下Pedestal,这是一个非常有前途的Web框架,包括服务器端和客户端(在此方便ClojureScript)。gui的东西有点难掌握,但是在大型应用程序中要保持理智就应该做很多事情。


1

edge是一个中等大小的应用程序,展示了使用Clojure,ClojureScript,Component,Yada,Aero和Boot构建应用程序的结构。


0

Clojure仍然太年轻,并且是移动目标,因此尚无法提供具有可用源代码的中型应用程序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.