ワークフロー Tips

Julia を効率的に使いこなすためのアドバイスをいくつか示します。

REPL を中心としたワークフロー

Julia REPL の章でも説明したように、Julia の REPL は対話的なワークフローを助ける豊富な機能を提供します。コマンドラインからの操作を快適にするヒントをここに示します。

基本的なエディタ/REPL ワークフロー

最も基本的な Julia ワークフローはコマンドラインの julia とテキストエディタを組み合わせて使うのものです。典型的なパターンは次の通りです:

  1. 開発中のコードを一時的なモジュールに入れる: Tmp.jl といった名前のファイルを作り、次のようなコードを書く

    module Tmp
    export say_hello
    
    say_hello() = println("Hello!")
    
    # 他の関数の定義など
    
    end
    
  2. テストコードを他のファイルに書く: tst.jl といった別のファイルを作り、次のようなコードを書く:

    include("Tmp.jl")
    import .Tmp
    # using .Tmp # Tmp がエクスポートするシンボルを現在の名前空間に入れるならこちらを使う。
    
    Tmp.say_hello()
    # say_hello()
    
    # 他のテストコード
    

    そして Tmp で定義される関数に対するテストを書く。テストファイルの内容をモジュールにしてもよい:

    module Tst
        include("Tmp.jl")
        import .Tmp
        # using .Tmp
    
        Tmp.say_hello()
        # say_hello()
    
        # 他のテストコード
    end
    

    こうするとテストコードが Main のグローバルスコープと異なるモジュールに入るので、整理がしやすくなる。

  3. Julia REPL で include("tst.jl") を実行して tst.jl をインクルードする。

  4. 繰り返す: Julia REPL で様々なアイデアを試し、上手く行ったものを tst.jl に保存する。変更した tst.jl を読み込むには、もう一度 include を実行するだけで済む。

ブラウザベースのワークフロー

IJulia を使えばブラウザから Julia REPL を使うこともできます。詳細はパッケージのページを見てください。

Revise.jl を使ったワークフロー

REPL と IJulia のどちらを利用するにしても、多くの場合で Revise.jl を使うと開発体験が向上します。Julia を開始したときに Revise.jl を読み込むよう設定している人も少なくありません (この方法は Revise.jl のドキュメントにあります)。Rivise.jl を開始すると、読み込んだモジュールに含まれるファイルと REPL から includet したファイルが監視され、ファイルを編集したときに Julia セッションを再起動せずとも変更が適用されるようになります (普通の include で読み込んだファイルは無視されます)。

標準的なワークフローは上述の REPL ベースのワークフローに似ていますが、次の点が異なります:

日本語 Julia 書籍 (Amazon アソシエイト)
1 から始める Julia プログラミング
Julia プログラミングクックブック―言語仕様からデータ分析、機械学習、数値計算まで
スタンフォード ベクトル・行列からはじめる最適化数学