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