工作流程提示

以下是有效率地使用 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 的工作流程,並有以下修改

  1. 將您的程式碼放入載入路徑中的某個模組。有幾個選項可以達成此目的,其中兩個建議的選項為

    • 對於長期專案,請使用 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 以變更原始碼,並建立您選擇的任何測試檔案。

  2. 開發您的套件

    載入任何程式碼之前,請確定您正在執行 Revise:說 using Revise 或遵循其文件以將其設定為自動執行。

    然後導覽至包含您的測試檔案(在此假設為 "runtests.jl")的目錄,並執行下列動作

    julia> using MyPkg
    
    julia> include("runtests.jl")

    您可以在編輯器中反覆修改 MyPkg 中的程式碼,並使用 include("runtests.jl") 重新執行測試。您通常不需要重新啟動 Julia 會話即可看到變更生效(但有少數 限制)。