私たちの会社でいくつかのデータを処理するClojureアプリケーションがあります。.myapp.clj
だから私はそのカスタマイズスローファイルなどの可能性を得たいと思っています。
これは、ユーザーが独自のデータ処理原理を定義できる clojure の単純なスクリプトでなければなりません。また、彼は http バックエンドやその他のアプリケーション部分を調整する可能性を持っている必要があります。
では、このフィッシュを実装する最良の方法は何ですか?
さまざまなレベルの洗練度で、いくつかの方法が思い浮かびます。最も簡単な方法は、各ユーザー~/.myall.clj
が自分のホーム ディレクトリで a を定義し、プログラムの開始時に次の行を含めることです。
(def per-user-config (load-file "~/.myall.clj"))
load-file
ファイルを読み取り、ファイルで最後に読み取ったフォームを返します。これにより、構成ファイルをうまく構成できます。たとえば、次のようなシンボルを持つ会社全体のテンプレートを作成し、ユーザー名を定義してテンプレートuser-name
を呼び出すユーザーごとの構成ファイルからそれをロードできます。load-file
config-template.clj:
{:app-name "foo"
:user-url (str "http://server.company:8080/users/" user-name)
:foo "bar"}
ジョーズ-config.clj:
(def user-name "joe")
(load-file "resources/global-config.clj")
これにより、ユーザーが構成の任意の部分を上書きできるようにしながら、git を介してほとんどの構成を配布できます。