我刚接触Clojure,并开始尝试构建一个应用程序。
到目前为止,我看到的所有有关编译Clojure程序的教程都需要交互式操作。例如,“加载REPL并键入(load-file“this-or-that”)运行”。这很好,但还不够。
我习惯于像C或Delphi这样的语言中的编辑-编译-运行惯例,我本能地一边进行编辑,一边按“M-x compile” 。
问题是,“lein uberjar”,据我所知相当于“make”,即使对于hello world也执行速度非常缓慢。因此,我将不得不弄清楚这种“交互式开发”如何工作,并停止像快速制作一样使用uberjar,并仅在一天结束时保存它。
另一件我在使用(使用lein uberjar)过程中注意到的事情是,我正在构建的小GUI应用程序在编译过程中会弹出框架,就像它们在编译时被执行一样。 这似乎与我的想法不太类似;它不完全类似于“make”。
我知道Lisp的开发方式是通过REPL进行交互式工作,我不打算改变这一点:我希望适应这种生活方式。不幸的是,我在如何做到这一点方面看到了很少的文档。例如,如何重置机器的当前状态。只是一直在即时编译单个片段并不能进行某种形式的重置,感觉有点混乱。
我看到的大多数关于Clojure(和Lisp)的教程似乎都专注于在REPL中执行代码。有关应用程序部署的最佳实践对我来说仍然是个谜。我的用户只会是用户;他们不会是将文件加载到REPL中的开发人员。
因此,我的问题是:是否有任何关于构建Clojure应用程序的整个过程(包括部署)的良好信息或教程资源?
(注意:我已经安装并成功使用了所有的前提条件,例如Emacs、Slime、Leiningen等),所以这不是一个关于那方面的问题。