67

Clojure 用の Web フレームワークがいくつかあります

また、次のような特定の Web 開発サブタスクを処理するためのライブラリもいくつかあります。

また、何百もの Java ライブラリを使用することもできます。いくつかの側面については、ここですでに説明しましたが、そのうちの 2 つを少し比較しました

これらのフレームワーク/コンポーネントは、成熟度、範囲、開発の容易さ、Django/RoR の感覚などの点でどのように比較されるのだろうか.

4

6 に答える 6

41

私が最初に Web 開発を始めたとき、それは Clojure でした。私はWeb 開発経験がまったくありませんでした。私の人生では、コンポジュールを理解することはできませんでした。それ以来、初心者向けのドキュメントが改善されたかどうかはわかりませんが (それほど昔のことではありません)、当時はそれを管理できませんでした。友人が Mustache を教えてくれたので、README を読んだ後、現在の状態のhttp://try-clojure.orgをまとめることができました。ですから、使いやすさに関して言えば、Mustache は私にとってケーキだと思います。

ただ、これが当時あったとしたら、別の曲を歌っていたかもしれません。

Conjure は非常にクールに見えますが、他のフレームワークとは大きく異なります。Web 開発全般に関する私の非常に限られた経験を考えると、私はこの問題についてあまり発言することはできませんが、Conjure は私にとって一種の不法行為のように感じます。気分が悪いだけです。やり方に慣れていないだけなのかもしれません。

更新:これを書いてからしばらく経ちました。多くのことが変わりました。Mustache を使用する人はもうあまり多くなく、あまり積極的にメンテナンスされていませんが、おそらくまだ動作するほど十分に完成されていて (そして十分に単純で)、代わりに Compojure または Noir を使用することをお勧めします。これらは両方とも現在維持されているフレームワークであり、どちらも優れた仕事をしています。

更新 2: Noir はかなり前から廃止されており、その機能のほとんどはlib-noirと呼ばれる compojure/他のリングベースの Web フレームワークから使用するように設計されたライブラリに移動しました。

于 2010-07-24T12:28:10.640 に答える
21

私はこの質問が少し時代遅れであることを知っています...しかし、私はNoirを非常に良い選択肢として提案せずにはいられませんでした.

Noir は、Ring、Compojure、および Hiccup の組み合わせを使用して仕事を完了します。見てみな!

于 2011-07-08T04:52:04.073 に答える
11

上記の Bjorn Lindqvist のコメントで述べたように、Noir は死んでいます。詳細はこちら

代わりに、Compojurelib-noir の使用を検討してください。

于 2013-03-26T20:19:11.763 に答える
10

フレームワークの観点から考えるのはおそらく間違いです。より良いアプローチは、要件に最適な「フレームワーク」を得るためにまとめたライブラリ コンポーネントの観点から考えることです。

私は過去にいくつかのフレームワークを使用してきました。それらのほとんどは、基本的なアプリケーションを非常に迅速に起動して実行するのにかなり良い仕事をします. ただし、例外なく、それらすべてがイライラすることが多いことがわかりました. 多くの場合、ボイラープレートが多すぎるか、開発中のアプリケーションに関係のないフープを飛び越えなければならないことが原因です。

Clojure に初めて来たとき、私はフレームワークを探し始めましたが、これが間違ったアプローチであることに気付きました。代わりに、基本的なリング アプリケーションから始めて、必要に応じてライブラリを追加する方がはるかに優れていることがわかりました。これは最初は大きな学習曲線のように思えるかもしれませんが、実際には必要のないフレームワークの足場の山全体を学習する必要がないため、同じくらい効率的であることがわかります。

ただし、さまざまなフレームワークを見ると、ライブラリを最適に統合する方法、さらに重要なことに IMO を統合する方法、必要なワークフローに最適なように lein project.clj ファイルを最適に構成する方法についてのアイデアが得られるため、非常に役立つことがわかりました。

次のテンプレートが非常に便利であることがわかりました。私はそれらを「そのまま」使用しませんが、私が取り組んでいるアプリに最適なフレームワークを開発するために、それらの多くからアイデアを採用/盗用しました.

  • LuminusおよびLuminus テンプレートは、非常に広範なフレームワークを提供します。それらは多くのアプリケーションにとって少し「重い」と思いますが、さまざまな Clojure ライブラリをアプリに統合する方法の素晴らしい例がいくつかあります。メイン Web サイトには、役立つドキュメントもいくつかあります。

  • Reagent テンプレートを含む Reagent Projectは、Reagent (react.js) ClojureScript サポートを使用するアプリの出発点として適しています。これは、Javascript と適切に統合されたアプリを作成する最も簡単な ClojureScript ライブラリの 1 つです。

  • lein-figwheelは、figwheel を使用して clojurescript の動的読み込みを提供する非常に興味深いテンプレートです。これにより、コードを変更するときにブラウザーで ClojureScript の変更を確認できます。他の多くのテンプレートでは、この機能が独自のテンプレートに追加されています。もともと Om を念頭に置いて開発された Luminus および Reagent テンプレートは、テンプレートに Figwheel 機能も統合するようになりました。インタラクティブな開発における Clojure と ClojureScript の利点のいくつかを実際に示しています。

  • Compojure Templateは素晴らしい出発点です。それはすべての基本的なリングと compojure のもので非常に基本的な compojure ベースのプロジェクトを設定します。Clojure Web 開発を始めるのに最適な方法です。Clojure はシンプルであり、他のすべてのオプションに溺れる前に基本に集中できるからです。

他にも多くのテンプレートとフレームワークがありますが、その多くはまだ見ていません。最近では、compojure テンプレートまたは試薬テンプレートのいずれかから始めて、必要に応じて追加のビットを追加することがよくあります。私は通常、テンプレートに selmar も含め、基本的に Luminus が使用するのと同じ構成を使用します。

おそらく、Web 開発用の優れた「フレームワーク」を取得するための最も重要な部分は、lein がどのように機能するか、および lein project.clj ファイルを実験して理解することです。適切な project.clj ファイルがあれば、ワークフローが決まります。適切なプロファイルを持つこと、さまざまな方法で repl を開始する機能、さまざまなライブラリをロードして、figwheel やブラウザーの repl を開始したり、jar を生成したりすることができるのは、すべて project.clj ファイルに関するものです。これを正しく行うと、環境は必要なワークフローだけを提供します。

于 2015-03-07T09:52:21.337 に答える
2

REST サービスを実装するための優れた代替手段としてシーンに登場した新しいプレイヤーはliberatorです。HTTP 仕様RFC-2616のすべての関連要件に自動的に準拠しながら、データをリソースとして簡単に公開でき、http-kitおよび Compojure とうまく連携します。

http-kit にはかなり満足していますが、ライブ コードのリロード機能は便利です。

于 2014-03-01T01:38:55.317 に答える