【发布时间】:2010-06-06 12:27:27
【问题描述】:
我正在使用 Clojure 开发一个宠物项目,但想知道我是否可以加快我的工作流程。
我当前的工作流程(使用 Compojure)是:
- 使用
lein swank启动 Swank。 - 转到 Emacs,与
M-x slime-connect联系。 - 一一加载所有现有的源文件。这也会启动一个 Jetty 服务器和一个应用程序。
- 在 REPL 中编写一些代码。
- 如果对实验感到满意,请编写我想到的构造的完整版本。评估 (
C-c C-c) 它。 - 将 REPL 切换到此构造所在的命名空间并对其进行测试。
- 切换到浏览器并使用受影响的页面重新加载浏览器选项卡。
- 调整代码,评估它,在浏览器中检查。
- 重复以上任何一项。
它有很多烦恼:
- 我必须一直在 Emacs 和浏览器(或浏览器,如果我正在测试诸如使用多个浏览器进行模板化之类的东西)之间切换。是否有一个常见的习惯用法可以自动执行此操作?我曾经有一个不断重新加载页面的 JavaScript 位,但显然,当我必须与页面交互超过几秒钟时,它的实用性有限。
- 当我试验和编写测试函数时,我的 JVM 实例变得“脏”。基本上命名空间会被污染,尤其是当我在命名空间之间重构和移动函数时。这可能导致符号冲突,我需要重新启动 Swank。我可以取消定义符号吗?
- 我在重新启动 Swank 时一一加载所有源文件 (
C-c C-k)。我怀疑我做错了。 - 在 REPL 和文件编辑器之间切换可能有点烦人,尤其是当我在浏览器旁边打开了很多 Emacs 选项卡时。li>
我正在寻找改进上述要点和整个工作流程的方法,如果你能分享你的,我将不胜感激。
P。 S.
我之前也用过 Vimclojure,所以也欢迎基于 Vimclojure 的工作流程。
【问题讨论】:
标签: clojure