Pracuję nad projektem dla zwierząt domowych z Clojure, ale zastanawiam się, czy mogę przyspieszyć mój przepływ pracy.Efficient Clojure workflow?
Mój obecny workflow (z Compojure) wynosi:
- start Swank z
lein swank
. - Przejdź do Emacs, połącz się z
M-x slime-connect
. - Załaduj wszystkie istniejące pliki źródłowe, jeden po drugim. To również uruchamia serwer Jetty i aplikację.
- Napisz kod w REPL.
- Po wykonaniu eksperymentów napisz pełną wersję konstruktu, który miałem na myśli. Eval (
C-c C-c
) to. - Przełącz REPL na obszar nazw, w którym znajduje się ten konstrukt i przetestuj go.
- Przełącz na przeglądarkę i ponownie załaduj kartę przeglądarki ze stroną, której dotyczy problem.
- Popraw kod, sprawdź go, sprawdź w przeglądarce.
- Powtórz dowolne z powyższych.
Istnieje szereg niedogodności z nim:
- muszę przełączać pomiędzy Emacs i przeglądarkę (lub przeglądarek czy jestem testowania rzeczy jak szablonów z wieloma przeglądarkami) cały czas. Czy istnieje wspólny idiom do automatyzacji tego? Miałem kiedyś bit JavaScript, który przeładowuje stronę w sposób ciągły, ale ma ograniczone zastosowanie, oczywiście, gdy muszę wchodzić w interakcję ze stroną przez więcej niż kilka sekund.
- Moja instancja JVM staje się "brudna", kiedy eksperymentuję i piszę funkcje testowe. Zasadniczo przestrzenie nazw stają się zanieczyszczone, szczególnie gdy przeprowadzam refaktoryzację i przenoszę funkcje między przestrzeniami nazw. Może to doprowadzić do kolizji symboli i muszę ponownie uruchomić Swank. Czy mogę usunąć symbol?
- Po ponownym uruchomieniu Swank ładuję wszystkie pliki źródłowe jeden po drugim (
C-c C-k
). Podejrzewam, że robię to wszystko źle. - Przełączanie między REPL a edytorem plików może być trochę irytujące, szczególnie gdy mam otwartych wiele kart Emacsa, razem z przeglądarką (przeglądarkami).
Szukam sposobów poprawy powyższych punktów i całego przepływu pracy w ogólności, więc byłbym wdzięczny, gdybyś podzielił się swoją.
P. S.
Mam również wykorzystywane Vimclojure wcześniej, więc przepływy Vimclojure oparte są zbyt mile widziane.