Я разрабатываю проект для домашних животных с Clojure, но задаюсь вопросом, могу ли я немного ускорить свой рабочий процесс.
Мой текущий рабочий процесс (с Compojure):
- Запустите Swank с помощью
lein swank
. - Перейдите в Emacs, подключитесь к
M-x slime-connect
. - Загрузите все существующие исходные файлы по одному. Это также запускает сервер Jetty и приложение.
- Напишите код в REPL.
- Когда вы удовлетворены экспериментами, напишите полную версию конструкции, которую я имел в виду. Eval (
C-c C-c
) it. - Переключите REPL в пространство имен, в котором находится эта конструкция, и протестируйте ее.
- Переключитесь на браузер и перезагрузите вкладку браузера с затронутой страницей.
- Измените код, проверьте его, проверьте в браузере.
- Повторите любое из указанных выше действий.
С ним много неприятностей:
- Мне нужно переключаться между Emacs и браузером (или браузерами, если я постоянно тестирую такие вещи, как шаблоны с несколькими браузерами). Есть ли распространенная идиома для автоматизации этого? Раньше у меня был бит JavaScript, который перезагружает страницу непрерывно, но это ограниченная утилита, очевидно, когда мне приходится взаимодействовать со страницей более нескольких секунд.
- Мой экземпляр JVM становится "грязным", когда я экспериментирую и записываю тестовые функции. В основном пространства имен загрязняются, особенно если я рефакторинг и перемещение функций между пространствами имен. Это может привести к конфликтам символов, и мне нужно перезапустить Swank. Могу ли я отменить символ?
- Я загружаю все исходные файлы один за другим (
C-c C-k
) после перезапуска Swank. Я подозреваю, что делаю все это неправильно. - Переключение между REPL и файловым редактором может быть немного раздражающим, особенно когда у меня открыто много вкладок Emacs вместе с браузерами.
Я ищу способы улучшить вышеупомянутые моменты и весь рабочий процесс в целом, поэтому я был бы признателен, если вы поделитесь своим.
Р. S.
Я также использовал Vimclojure раньше, поэтому рабочие процессы на основе Vimclojure тоже приветствуются.