我对人们如何构建他们的Clojure源代码感兴趣。
习惯Java,我非常熟悉每个源代码文件一个类的范例,用适当的注释和注释等捆绑所有数据和方法定义。
然而Clojure提供了更多的灵活性,我不确定我应该如何构建我的项目(可能最终成为一个中型应用程序,可能是5000行,有三个或四个不同的子系统)
特别是我正在努力:
答案 0 :(得分:8)
我也来自Java背景,还有相当多的Ruby和一点Go。这就是我现在正在做的事情,大约一个月进入Clojure:
我有两个命名空间与文件的约定:
作为名称空间示例,我有一个读取格式并将其转换为HTML的解析器。我有一个解析器的命名空间(语义单元)和目录中的几个文件分为子功能:Lexer,解析器,HTML转换和包含使用解析器的主公共API的主文件。
我不会自动为每个数据类型使用一个命名空间,它取决于数据类型的范围。如果它是一个大的,也许。但对于像Point这样的数据类型,有两个字段和几个函数,我宁愿将它包含在像Geometry这样更通用的命名空间中。
要求与使用: