我正在用Clojure開發一個寵物項目,但不知道我是否可以加快我的工作流程。高效的Clojure工作流程?
我現在的工作流程(帶的Compojure)是:
- 開始斯旺克與
lein swank
。 - 轉到Emacs,連接
M-x slime-connect
。 - 逐個加載所有現有的源文件。這也啓動了一個Jetty服務器和一個應用程序。
- 在REPL中寫入一些代碼。
- 對實驗感到滿意後,寫一個我想到的構造完整版本。 Eval(
C-c C-c
)它。 - 將REPL切換到此構造所在的命名空間並對其進行測試。
- 切換到瀏覽器並使用受影響的頁面重新加載瀏覽器選項卡。
- 調整代碼,評估它,檢查瀏覽器。
- 重複上述任何操作。
有許多煩惱的吧:
- 我有Emacs和瀏覽器之間(或瀏覽器,如果我喜歡用多種瀏覽器測試模板的東西)所有的時間進行切換。有沒有一個常見的習慣自動化呢?我以前有一個JavaScript位可以連續重新加載頁面,但是當我必須與頁面交互超過幾秒鐘時,顯然它的效用是有限的。
- 當我試驗和編寫測試函數時,我的JVM實例變得「髒」。基本上命名空間被污染,特別是如果我重構和移動名稱空間之間的函數。這可能會導致符號衝突,我需要重新啓動Swank。我可以取消一個符號嗎?
- 重新啓動Swank後,我逐個加載所有源文件(
C-c C-k
)。我懷疑我做的都是錯的。 - 在REPL和文件編輯器之間切換可能有點刺激,特別是當我打開很多Emacs標籤頁時,還有瀏覽器。
我正在尋找方法來改善上述要點和整個工作流程,因此,如果您願意分享您的意見,我將不勝感激。
P. S.
我之前也使用Vimclojure,因此基於Vimclojure的工作流程也歡迎。