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
Workflow helper
使用 Component/Integrant/Mount 即可達成。
Dependency helper
使用 Pomegrant/ Alembic 就可以在不關掉 REPL 的情況下,加入新的 jar dependency
Alembic 的使用方式:
- 在
project.clj
裡增加新的 dependency (load-project)
- 在
Data helper
把重要的「連線」資料儲存在 memory 裡,然後用一些 helper 就可以取得。
(response)
for Ring request map / Pedestal context map(session)
for Ring session(conn)
for Datomic DB / connection
Debug helper
只要可以處理好 local state ,就可以利用 REPL 來 debug 。 可以使用scope-capture 。 參考資料
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