当您编写又长又重的 JSL 代码时,如何优雅地检测和修复错误?我有一个问题,当你想在修复错误部分后重新启动 JSL 代码时,你该怎么做? 我上周在 JMP Discovery Summit Japan 上收到了这个问题。
您是否知道在 JMP 中编写长 JSL 代码、检测错误并顺利修复它们的良好做法?
最初的问题是是否可以更改一个JSL代码并重新启动它无需从头开始在 JSL 调试器中。 请参阅下面的屏幕截图作为示例。 错误发生在第 4 行。 用户想要更改此错误部分并重新启动它,而不运行前两行(x=1; 和 Show(x);)。

他有时在 JMP 上使用 JSL 执行非常繁重的流程,并且他不想从一开始就再次执行相同的操作。
据我和用户检查,没有办法在 JSL 调试器中进行此类重新启动。 我们需要停止 JSL 调试器,在脚本编辑器中修复它,并从头开始重做所有代码。
在用于 R 和 Python 编程的 Jupyter Notebook 和 Google Colab 中,您可以将长代码分成几个小部分,并且可以只运行发生错误的有问题的部分,而无需从头运行。
我自己放置了许多“Throw()”函数,以便在编写很长的 JSL 代码时查看错误发生在哪里。 但这并不优雅。
我会感谢您的任何想法、技巧或建议。
回复:当您编写又长又重的 JSL 代码时,如何优雅地检测和修复错误?一些更认真的 JSL 开发人员使用 VS Code。 Vince Faller 编写了 VS Code 的 JMP JSL 扩展

另一种方法是使用函数式编程或表达式。 您可以将代码编写为表达式序列或函数序列。 每个函数或表达式可能只是一小部分代码,您通常只是线性编写。
回复:当您编写又长又重的 JSL 代码时,如何优雅地检测和修复错误?还有一个 JMP Notebook 正在开发中,类似于 Jupyter Notebook/Google Colab,并计划发布 v19。 我发现这使得脚本编写和调试变得更容易,原因如您所说。 当然,这是一个相当遥远的解决方案,但我们很快就能开始向客户展示这个解决方案。
回复:当您编写又长又重的 JSL 代码时,如何优雅地检测和修复错误?非常感谢您的建议。
我想介绍一下 Vince Faller-san 在 VS Code 上的 JSL 扩展。 我自己仅在编写 Julia 代码时才使用 VS Code(很少)。 但对于日本用户来说,使用 JSL 编程可能也是一个很好的解决方案。
我还会用一些例子告诉你的想法,他应该将整个代码分成小函数。
回复:当您编写又长又重的 JSL 代码时,如何优雅地检测和修复错误?非常感谢您的建议。
我告诉过“JMP Notebook 插件”( JMP-笔记本)给用户。令我兴奋的是,JMP 有一个开发计划,将在未来版本(JMP19 或更高版本)中支持“JMP Notebook”。