2016-03-24 14 views
4

私はClojureアプリケーションを開発しています.Clojureアプリケーションは、Webから画像をダウンロードし、特定の基準で解析します。ブラウザで視覚的にclojure関数の出力をテストします。

これが意味するかもしれないものは何でも、重要な部分は、それらが処理されるまでしばらく時間がかかるアプリでいくつかの非常に高価な機能、があるだろうということ、です。最後に

は、ウェブフロントエンドにアプリの機能を公開するAPIが存在します。これは第二のステップであることを意味する。

アプリは、グラフィックスとやるべきことがたくさん持っているので、それは私が、開発プロセス中に書いている関数の出力を視覚化することは理にかなって。 基本的に私はこれをアーカイブする簡単な方法/環境を探しています。 もっと正確に:新しい機能を作成するたびに、ブラウザ内でその機能をテストしたいと思います。出力をプロットし、いくつかの中間ステップを描き、多少のインタラクティブなスクリプトを作成して、アルゴリズムが意図したことをしていることを監督するのに役立ちます。注:私は関数をClojureScriptに変換してブラウザで実行させたくないので、ブラウザは単なる "表示"でなければなりません。

私の頭に浮かんだいくつかのアプローチ:

  • は、名前空間のすべての機能を公開して少しバックエンドサーバーを書きます。だから、フロントエンドは、関数とその文字列を含むパラメータ、またはおそらくedn形式の方が良い、ajaxリクエストをサーバに送るだけで、これらの関数すべてにアクセスできます。バックエンドは要求を受け取り、要求された関数を呼び出し、計算が終了するたびに結果を返します。おそらくすでにプロジェクトがありますか、それはまさにこれですか?

  • "Gorilla Repl"のようなプロジェクトを使用すると、これは良い選択肢になり、多分私はそれを使用するつもりです。しかし、私はまだメカニズムがレンダリングされた出力に対話的に影響を与える方法をカバーしているかどうかわかりませんでした。むしろ静的レンダリングのワークシートとして機能します。

あなたはどうしますか?どんな提案も感謝しています。

+1

はhttps://github.com/bhauman/devcardsを見てください – nha

答えて

0

私は同様の問題に取り組んできていると私はあなたがLighttable + Clojureの+ Nerdy-painter(プラグイン)の組み合わせを使用することができると思います。

オタク-画家は、あなたがLighttable(IDE)に画像を表示することができます。データの探索やグラフィック/プロットと関連があるものには非常に便利です。

免責事項:私は不自然な画家の著者ですが、私は最も速く/エレガントな解決策は、私が上で説明したものだと思います。他のすべてのソリューションは、開発サイクルに多すぎるオーバーヘッドを(IMHO)追加します。

0

可能性がClojureのと対話するJupyterのClojureのカーネルを使用することです。 Jupyterはブラウザで動作し、カスタムバインディングを追加してDOMへのアクセスを簡単にすることができます。ここで

はClojureのカーネルです:https://github.com/roryk/clojupyter

関連する問題