【问题标题】:How are big clojure projects organized?大型 clojure 项目是如何组织的?
【发布时间】:2012-06-26 04:38:29
【问题描述】:

在大多数编程语言中,您通常具有“命名空间 > 文件 > 类 > 方法”或类似的组织。这在 clojure 中是如何完成的?

【问题讨论】:

    标签: file class methods clojure namespaces


    【解决方案1】:

    大致是这样的:

    namespace > files > vars 
    

    注意:

    • 命名空间通常在单个文件中定义,但并非必须如此(您可以使用多个文件来定义命名空间)
    • var 可以包含任何内容:函数、Java 对象、数据、宏等。大多数时候,它们要么是函数,要么是顶级数据字面量
    • 命名空间是动态的:它们可以在运行时修改。这为您提供了很大的灵活性,可以根据需要以不同的方式组织代码(例如,您可以以编程方式生成和填充命名空间)

    另见:

    【讨论】:

      【解决方案2】:

      Clojure 命名空间是 java 包,因此大多数 Clojure 程序的组织方式与 java 程序非常相似,至少在包级别。

      在包级别之后,我看到许多 Clo​​jure 程序往往比 Java 同类程序更扁平。

      【讨论】:

      • Clojure 命名空间通常用于类似于 java 包,但它们的实现肯定是不同的,具有不同的语义。请参阅clojure.lang.Namespace java 类。 Clojure 确实有 libs 的概念,它作为 java 资源提供,通常提供一个 clojure 命名空间。
      猜你喜欢
      • 2012-04-07
      • 1970-01-01
      • 2010-10-17
      • 1970-01-01
      • 2014-11-14
      • 1970-01-01
      • 2011-08-03
      • 2019-05-27
      • 1970-01-01
      相关资源
      最近更新 更多