【发布时间】:2011-05-25 10:26:50
【问题描述】:
Clojure 如何处理关注点分离?由于代码是数据,所以函数可以作为参数传递并用作返回......
而且,因为有这样的原则“1000 个函数在 1 个数据结构上工作,比 100 个函数在 100 个数据结构上工作更好”(或类似的东西)。
我的意思是,把所有东西都打包成一个地图,给它一个关键字作为键,就是这样?函数、标量、集合,一切......
关注点分离的想法在 Java 中通过 Aspects(面向方面的编程)和注解来实现。这是我对这个概念的看法,可能有些局限,所以不要想当然。
在 Clojure 中什么是正确的方式(惯用方式),以避免其他程序员的 WTF _
【问题讨论】:
-
您能否更具体地说明您的要求。关注点分离是一个用来表示 100 种不同事物的术语。
-
方面是一种无需访问其源代码即可修改现有代码行为的方法。 Clojure 和其他 Lisps 通过动态变量提供了类似的东西,它们本质上是具有自己堆栈的全局变量。顶级函数(使用 defn 创建的)是动态变量,可以与
binding绑定。binding的语法看起来就像let,但绑定是在绑定表单内的调用中使用的。
标签: clojure separation-of-concerns