私は Clojure を初めて使用し、アプリケーションの構築を試し始めています。
これまでのところ、Clojure プログラムのコンパイルに関するチュートリアルについて私が見たものはすべて、対話性に関係しています。たとえば、「REPL をロードして (load-file "this-or-that") と入力して実行します。これは問題ありませんが、十分ではありません。
私は C や Delphi のような言語の編集、コンパイル、実行のイディオムに慣れているため、本能的に編集を行い、「Mx コンパイル」を押します。
問題は、「make」と同等であると私が理解している「lein uberjar」は、hello world であっても実行が非常に遅いことです。だから私は、この「インタラクティブな開発」がどのように機能するかを理解し、uberjar をクイックメイクのように使用するのをやめ、1 日の終わりにのみ保存する必要があります。
(lein uberjar を使用して) ビルド中に気付いたもう 1 つのことは、私が取り組んでいる小さな GUI アプリが、コンパイル中に実行されているかのように、コンパイル プロセスでフレームをポップアップすることです。私には少し直感に反するように思えます。私が思っていたほど「作る」とは似ていません。
私は物事を開発する Lisp の方法が REPL でインタラクティブに機能していることを知っています。私はそれを変えようとはしていません: 私はこの生き方に適応したいと思っています。残念ながら、その方法に関するドキュメントの形式はほとんど見たことがありません。たとえば、マシンの現在の状態をリセットする方法。ある種のリセットを行うことなく、個々のスニペットをオンザフライでコンパイルし続けるのは、ちょっと面倒に思えます。
私が見た Clojure (および Lisp) に関するほとんどのチュートリアルは、一般的に REPL のハッキングに焦点を当てているようです。アプリケーションの展開に関するベスト プラクティスは、私にとって謎のままです。私のユーザーはただのユーザーになります。ファイルを REPL にロードする開発者にはなりません。
そこで私の質問です。デプロイを含む Clojure アプリケーションの構築プロセス全体に関する適切な情報やチュートリアルのリソースはありますか?
(注: すべての前提条件 (Emacs、Slime、Leiningen など) をインストールして動作させているので、それについての質問ではありません)。