我在推特以及#clojure IRC频道上提出了这个问题,但没有回复。
有几篇关于Clojure-for-Ruby程序员的文章,Clojure-for-lisp程序员......但缺少的部分是 ActiveRecord程序员的Clojure 。
有关于与MongoDB,Redis等进行交互的文章 - 但这些都是当天结束时的重要价值商店。但是,来自Rails背景,我们习惯于在继承方面思考数据库 - has_many,polymorphic,belongs_to等。
关于Clojure / Compojure + MySQL(ffclassic)的几篇文章 - 深入研究sql。当然,ORM可能会导致阻碍不匹配,但事实仍然是在思考ActiveRecord之后,很难以其他方式思考。
我相信关系数据库非常适合面向对象的范例,因为它们本质上就是集合。像activerecord这样的东西非常适合建模这些数据。 对于例如一个博客 - 简单地说
class Post < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :post
end
如何在Clojure中对此进行建模 - 这是如此严格的反OO?如果提到所有函数式编程语言,问题可能会更好,但我更感兴趣的是Clojure观点(以及Clojure示例)
答案 0 :(得分:18)
答案 1 :(得分:5)
此问题暂时没有得到解答,但Korma http://sqlkorma.com是另一个有助于减少SQL和Clojure之间不一致的项目。它最近已经开始使用,应该可以使用更新的Clojure版本。
答案 2 :(得分:0)
已经启动了一个基于clojure.contrib.sql构建的新的微型SQL DSL。这是Github在轻量级76位的重量。
在作者的博客上有很多关于DSL背后的例子和理论,链接在他的Github个人资料(新用户SO超链接限制bah)上。它的设计允许SQL被抽象成更加惯用的Clojure,我觉得。