工作流程提示
以下是有效率地使用 Julia 的一些提示。
基於 REPL 的工作流程
正如在 Julia REPL 中已經說明的,Julia 的 REPL 提供豐富的功能,有助於有效率的互動式工作流程。以下是可能進一步增強您在命令列體驗的一些提示。
基本的編輯器/REPL 工作流程
最基本的 Julia 工作流程包括結合使用文字編輯器和 julia
命令列。常見的模式包括以下元素
將開發中的程式碼放入暫時模組中。建立一個檔案,例如
Tmp.jl
,並在其中包含module Tmp export say_hello say_hello() = println("Hello!") # your other definitions here end
將測試程式碼放入另一個檔案中。建立另一個檔案,例如
tst.jl
,類似於include("Tmp.jl") import .Tmp # using .Tmp # we can use `using` to bring the exported symbols in `Tmp` into our namespace Tmp.say_hello() # say_hello() # your other test code here
並包含
Tmp
內容的測試。或者,您可以將測試檔案的內容包裝在一個模組中,如下所示module Tst include("Tmp.jl") import .Tmp #using .Tmp Tmp.say_hello() # say_hello() # your other test code here end
優點是您的測試程式碼現在包含在一個模組中,且不會在
Main
中使用全域範圍進行定義,這會更為簡潔。使用
include("tst.jl")
在 Julia REPL 中include
tst.jl
檔案。重複執行。在
julia
命令提示字元中探索想法。將好的想法儲存在tst.jl
中。若要在變更tst.jl
之後執行它,只需再次include
即可。
瀏覽器工作流程
有幾種方式可以在瀏覽器中與 Julia 互動
基於 Revise 的工作流程
無論您是在 REPL 中或在 IJulia 中,您通常可以使用 Revise 來改善您的開發體驗。通常會設定 Revise 在每次啟動 julia 時啟動,如 Revise 文件 中的說明。設定後,Revise 將追蹤已載入模組中檔案的變更,以及使用 includet
(但不是使用一般 include
) 載入到 REPL 中的任何檔案;然後您可以編輯檔案,且變更會在不重新啟動 julia 會話的情況下生效。標準工作流程類似於上述基於 REPL 的工作流程,並有以下修改
將您的程式碼放入載入路徑中的某個模組。有幾個選項可以達成此目的,其中兩個建議的選項為
對於長期專案,請使用 PkgTemplates
using PkgTemplates t = Template() t("MyPkg")
這將在您的
.julia/dev
目錄中建立一個空白套件"MyPkg"
。請注意,PkgTemplates 允許您透過其Template
建構函式控制許多不同的選項。在以下步驟 2 中,編輯
MyPkg/src/MyPkg.jl
以變更原始碼,並編輯MyPkg/test/runtests.jl
以進行測試。對於「一次性」專案,您可以透過在暫時目錄(例如
/tmp
)中進行工作來避免任何清理需求。導覽至您的暫時目錄並啟動 Julia,然後執行下列動作
pkg> generate MyPkg # type ] to enter pkg mode julia> push!(LOAD_PATH, pwd()) # hit backspace to exit pkg mode
如果您重新啟動 Julia 會話,您必須重新發布修改
LOAD_PATH
的命令。在以下步驟 2 中,編輯
MyPkg/src/MyPkg.jl
以變更原始碼,並建立您選擇的任何測試檔案。
開發您的套件
在載入任何程式碼之前,請確定您正在執行 Revise:說
using Revise
或遵循其文件以將其設定為自動執行。然後導覽至包含您的測試檔案(在此假設為
"runtests.jl"
)的目錄,並執行下列動作julia> using MyPkg julia> include("runtests.jl")
您可以在編輯器中反覆修改 MyPkg 中的程式碼,並使用
include("runtests.jl")
重新執行測試。您通常不需要重新啟動 Julia 會話即可看到變更生效(但有少數 限制)。