Ada*_*old 2 code-generation clojure
假设我有一个用clojure编写的应用程序,它在运行时生成代码.如何调试该代码 - 我没有源代码?
编辑:我问这个问题,因为我正和我的同事聊聊clojure,他说由于上述原因,clojure程序很难(或不可能)进行测试.我认为这是一种评价者的悲观态度.如果它是不可测试的,没有人会使用它.
Clojure为您提供了如此强大的功能,因此您不需要debug
开发在其他功能较弱的语言(如java,c ++等)中常见的样式.
如果你保持这种编程风格,你将减少真正需要调试的机会.在您的情况下,您可以通过REPL完成所有工作.您可以通过记录获取生成"调试"动态代码的函数的输入参数.之后,您将以相同的方式获得此动态代码的输入参数.您将在最后生成"调试"代码和输入参数.因此,您可以轻松地重现情况并进行测试.
更新.关于问题的编辑部分,仅仅因为你的程序在运行中生成代码,说"clojure程序很难(或不可能)测试"是不正确的.请记住,生成的代码仍然是可以像通常的数据集合一样操作的数据.您不需要在断点处构建,运行和冻结整个应用程序,以查看其中发生的情况.我已经描述了测试动态代码的方式.