當您編寫又長又重的 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」。