REPL helper

想法來自於Aren Brasser 在 clojure.tw 給的 talk

REPL 是開發 clojure 時的 meta-tools 。我們可以利用 REPL 來製造協助我們工作的工具,即 REPL helpers

user.clj

應該要建立一個 user.clj 在 lein repl 時自動載入。這個 user.clj 裡,適合建立一些 REPL helper 。 下列是 REPL helper 的 ideas

  1. Workflow helper

    使用 Component/Integrant/Mount 即可達成。

  2. Dependency helper

    使用 Pomegrant/ Alembic 就可以在不關掉 REPL 的情況下,加入新的 jar dependency

    Alembic 的使用方式:

    • project.clj 裡增加新的 dependency
    • (load-project)
  3. Data helper

    把重要的「連線」資料儲存在 memory 裡,然後用一些 helper 就可以取得。

    • (response) for Ring request map / Pedestal context map
    • (session) for Ring session
    • (conn) for Datomic DB / connection
  4. Debug helper

    只要可以處理好 local state ,就可以利用 REPL 來 debug 。 可以使用scope-capture參考資料

  5. REPL History helper

    建立一個 /repl 或是 /scratch 資料夾,裡頭放所有 repl 的 history 。但是記得不要把它們 commit 進 git 裡。這件事有下列的好處:

    • REPL/scratch files
    • Encourages experimentation (go ahead, make a mess)
    • Explicitly keeps history
    • Shows thought process
    • Demonstrates usage
    • Provides a home for useful snippets

results matching ""

    No results matching ""