我已经在twitter和#clojure IRC频道上提出了这个问题,但没有得到任何答复.
有几篇关于Clojure-for-Ruby程序员,Clojure-for-lisp程序员的文章......但缺少的部分是Clojure for ActiveRecord程序员.
有关于与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
Run Code Online (Sandbox Code Playgroud)
如何在Clojure中对此进行建模 - 这是如此严格的反OO?如果提到所有函数式编程语言,问题可能会更好,但我更感兴趣的是Clojure的观点(以及Clojure示例)
Clojure如何实现关注点分离?由于代码是数据,函数可以作为参数传递并用作返回...
并且,因为有这样的原则"更好的1000个函数可以在1个数据结构上工作,而不是100个函数在100个数据结构上"(或类似的东西).
我的意思是,将所有内容打包成地图,给它一个关键字作为关键字,就是这样吗?功能,标量,集合,一切......
通过Aspects(面向方面编程)和注释,在Java中实现了Separation of Concerns的概念.这是我对这个概念的看法,可能有些限制,所以不要把它视为理所当然.
什么是正确的方式(惯用的方式)在Clojure,以避免其他程序员的WTFs _
当您计划使用像Haskell这样的函数式编程语言开发系统时,如何处理分析和设计阶段?
我的背景是命令式/面向对象的编程语言,因此,我习惯使用案例分析和使用UML来记录程序的设计.但事实是,UML本质上与面向对象的软件方式有关.
我很感兴趣的是,为将要使用函数式编程开发的系统开发文档和定义软件设计的最佳方法是什么.
haskell functional-programming analysis software-design purely-functional