Я новичок в Clojure, и я начинаю экспериментировать с созданием приложения.
До сих пор все, что я видел о учебниках по компиляции программ Clojure, подразумевает интерактивность. Например, "загрузите REPL и введите (load-file" this-or ") для запуска. Это нормально, но этого недостаточно.
Я так привык к идиомам редактирования компиляции таких языков, как C или Delphi, что я инстинктивно вынужден редактировать, а затем нажимаю "M-x compile".
Проблема заключается в том, что "lein uberjar", который, как я понимаю, эквивалентен "make", мучительно медленно исполняется даже для мира привет. Поэтому мне нужно выяснить, как работает этот "интерактивный проект", перестать использовать uberjar, как это сделать быстро, и сохранить его только в конце дня.
Еще одна вещь, которую я заметил при построении (используя lein uberjar), - это то, что небольшое приложение GUI, над которым я работаю, создает всплывающие кадры в процессе компиляции, как если бы они выполнялись во время компиляции. Мне кажется, это немного противоречит мне; это не совсем так же похоже на "сделать", как я думал.
Я знаю, что способ разработки вещей интерактивно работает в REPL, и я не пытаюсь это изменить: я бы хотел адаптироваться к этому образу жизни. К сожалению, я мало видел в форме документации о том, как это сделать. Например, как reset текущее состояние машины. Просто кажется, что бесполезно просто компилировать отдельные фрагменты на лету, не имея возможности сделать что-то вроде reset.
Большинство обучающих программ, которые я видел на Clojure (и Lisp), как правило, сосредоточены на взломе в REPL. Рекомендации по развертыванию приложений остаются для меня загадкой. Мои пользователи просто будут пользователями; они не собираются быть разработчиками, которые собираются загружать файлы в REPL.
Итак, вот мой вопрос: какие-либо ресурсы для хорошей информации или учебники по всему процессу построения приложения Clojure, включая развертывание?
(Примечание. У меня есть все необходимые установки и работа (например, Emacs, Slime, Leiningen и т.д.), так что это не вопрос об этом).