このガイドでは、Clojureで利用可能なwebフレームワークオプションについて説明し、推奨事項を示します。
あなただけの学習している場合は、推奨ライブラリ(近日公開)から独自のスタックをロールバックします。 それはすべてがどのように動作するかを理解するための最良の方法になります。
アプリケーションを構築するための実稼働テスト済みの基盤が必要な場合は、Pedestalを使用します。
作業を伴わずに独自のスタックをローリングする柔軟性が必要な場合は、Luminusを使用してください。
はじめに
Clojureの初心者からよく聞かれる質問の一つは、”どのwebフレームワークを使うべきですか?「これは良い質問です。 PythonにはDjangoがあります。 PHPでは、Drupal。 もちろん、Rubyにはすべてのwebフレームワークの王であるRuby on Railsがあります。 しかし、Clojureでは、これは答えるのが難しい質問です。 フレームワークとは何か、ライブラリとは何かを決定することさえ困難な場合があります。 我々は最初にそれに対処する必要があります。
webフレームワークとは
このガイドでは、webアプリケーションを構築するための包括的なアプローチを提供するコードと依存関係のコレクションとしてwebフレームワークを定義します。 この定義は、CompojureやRingなどの一般的にフレームワークと呼ばれるいくつかのライブラリを除外しています。 しかし、私がここで検討しているいくつかの偉大な候補がまだあります。
独自のスタックをロールすることは、Clojureでは事前に構築されたフレームワークを使用する一般的な代替手段であり、全体的なアプローチ(つまり、既存のライ
推奨基準
このガイドの目的は、さまざまなニーズのwebフレームワークに対する強力な推奨事項を提供することです。 各フレームワークについて調べる基準は次のとおりです。
Documentation
フレームワークには簡単に従うドキュメントがありますか? 私は、高度なトピックを通じて初心者のチュートリアルを探しています。
コミュニティ
大規模で活発なコミュニティは、フレームワークの実行可能性の重要な部分です。 大規模なコミュニティは、より簡単に提供し、依存関係を最新の状態に保ち、より完全なソリューションを構築できます。
成熟度
プロジェクトの年齢、そしてそれが大規模なサイトでの生産にどのくらい使用されているかは、もう一つの重要な要素です。 私は重要なサイトのために展開されている古いフレームワークを好む。
ウェブ標準
ビッグスリーのウェブ言語(HTML、CSS、JavaScript)のほかに、HTTPプロトコル自体の標準と”ベストプラクティス”のホストがあります。 私はHTTP応答コード、コンテントネゴシエーション、CORS、Websocketなどについて話しています。 フレームワークはどのようにこれらの標準を利用していますか? それはどのようにそれらに違反しますか?
アプローチ
フレームワークは全体的なアプローチを提供しなければならないので、アプローチ自体を考慮する必要があります。 フレームワークはアプリケーションの構築にどのようにアプローチしていますか?…