Version control 如何将Lisp代码拆分为多个源文件?

Version control 如何将Lisp代码拆分为多个源文件?,version-control,lisp,common-lisp,system,Version Control,Lisp,Common Lisp,System,现在,我所做的每件事都设法放在一个源文件中,而且是一个非常小的源文件。您如何决定将多少和哪些内容拆分为单独的文件 使用Java,很容易决定一个文件中包含哪些内容(这个决定已经为您做出了),但在我的文章中,我发现我编写了许多相互构建的小函数,很难决定应该拆分哪些内容。当我用Lisp处理更大的项目时,不必重新发明轮子就好了,但是我在网上找不到很多关于这方面的具体信息 你能分享一些在Lisp中处理大型项目的策略吗,或者给我介绍一些处理这个问题的资源吗?如果你使用的是Common Lisp,这是一种指定

现在,我所做的每件事都设法放在一个源文件中,而且是一个非常小的源文件。您如何决定将多少和哪些内容拆分为单独的文件

使用Java,很容易决定一个文件中包含哪些内容(这个决定已经为您做出了),但在我的文章中,我发现我编写了许多相互构建的小函数,很难决定应该拆分哪些内容。当我用Lisp处理更大的项目时,不必重新发明轮子就好了,但是我在网上找不到很多关于这方面的具体信息


你能分享一些在Lisp中处理大型项目的策略吗,或者给我介绍一些处理这个问题的资源吗?

如果你使用的是Common Lisp,这是一种指定系统的常用方法。它处理源文件之间的加载顺序依赖关系(以及更多)。

请参阅Zach Beane的“”。
他在

上有一篇更新文章,当你开始编写Lisp程序时,从一个文件开始可能会很有用。一旦代码变得太大(不管是什么),您可以将其拆分。当你接近需要组织的东西时,你应该投入一些工作

一些提示:

  • 有一些工具可以管理源文件依赖关系,并提供诸如编译、加载、编译和加载等操作是一个,但也有其他的

  • 您需要一个文件来描述依赖项。给它命名,以便能被识别

  • 您可能需要一个文件来定义一个或多个

  • 您可能需要将特定于实现的功能放入它们自己的文件中

  • 将大量的配置数据移动到它们自己的文件中

  • 常规实用程序应位于另一个文件中

  • 应在使用前定义。其他文件依赖于此文件,如果宏定义发生更改,则应自动重新编译这些文件

  • 如果文件是逻辑连接的,则将功能分组到一个文件中。在绘图程序中:所有绘图功能、所有用户界面命令、将数据保存到文件、打印

  • 不要太在意文件大小。Lisp源文件可以很大。有时是10万

  • 开发环境支持在文件中移动。M-。在一个符号上找到它的来源

  • 确保可以重新加载文件,而无需重新启动整个Lisp

  • Common Lisp提供加载和编译文件功能。您可以在自己的文件中使用这些函数


我有点震惊——我知道我以前在你的链接中看到并浏览过该页面,但当时不知道它在说什么。现在,在上下文中,它更有意义了——谢谢!这可能有助于研究小型CL库如何设置其.asd文件。我写了一个简单的小例子:谢谢,看到这样一个小软件包的例子真的很有帮助!这是如何使用ASDF的一个很好的解释/示例,谢谢