28

両方についてどう思いますか?Catalyst に関する本を読み始めたところ、Dancer に比べてかなり複雑であることがわかりました。だから今、私はDancerを試してみました.Dancerは習得が容易で、より「人間に優しい」ように見えます.

4

3 に答える 3

32

デビッドのコメントは非常に正確で優れていると思います。ただし、両方で開発を行ったが、どちらの開発者でもない人として違いが何であるかについて、もう少し客観的 (かつ技術的) になることができるかもしれません。

どちらのフレームワークも、Web MVC パラダイムのバリエーションを提供します。

Catalyst の主な抽象化レベルはコントローラーです。Catalyst は、論理的な方法で個別のロジックを個別のパッケージに分割することを期待しています (ログイン コードはここに、登録コードはそこに、検索機能はここに))。プログラマーのチームがいる場合、これは非常にうまく機能します。それぞれが別々のファイルで作業でき、マージ中にお互いを踏みにじることがないからです。Catalyst は、コントローラ ロジックを拡張可能かつ柔軟にするためのツールを多数提供しています。この最も優れた例は、特定の要求に対して複雑なフローを分割して構築できる連鎖アクションだと思います。欠点は、ビジネス ロジックをコントローラーに配置することが非常に魅力的になり、(理論的には) モデルに属しているコントローラーで非常に太ったロジックになってしまうことです。

ダンサーの主な抽象化レベルはルートです。Dancer での私の経験では、これによりアプリケーションがはるかに小さくなります。ここでの私の経験の一部は、Catalyst で数千行のアプリケーションを扱ってきたが、200 行を超える (スコープがはるかに小さい) Dancer アプリをまだ作成していないという事実に影響されています。しかし、この経験は真実だと思います。Dancer のプッシュは、Controller ロジックを非常に薄く保つことにあります。これは、Catalyst とは異なり、複雑な動作を管理するための同じツールがないためです。

正直なところ、私は両方で働くのを楽しんでいます。どちらも、Web アプリケーションの作成がどうあるべきかについて、異なる意見を示しています。時間と傾向を考えると、最終的には両方を学ぶことをお勧めします。

于 2011-02-22T16:41:47.490 に答える
29

これはやや主観的な質問ですが、客観的な方法でお答えします。まず最初に、免責事項: 私は Dancer 開発チームの一員です。

Catalystは Dancer よりも広く使用されているため、その背後にはより多くのコミュニティ サポートがあります。たとえば、いずれかのフレームワークで作業した経験のある請負業者を探す場合、Catalyst を使用したことのある開発者を見つける可能性が高くなります。したがって、商用サポートを探している場合は、Catalyst を選択する十分な理由になります。

Dancerは比較的新しいプロジェクトであり、小規模なプロジェクトを対象としているため、すばやく簡単に立ち上げて実行し、邪魔にならないようにしています。ただし、Dancer が大規模なプロジェクトに適していないと言っているわけではありません。邪魔にならないようにするという同じ習慣は、自分に合った方法でプロジェクトを整理できることを意味します。

しかし、多くの支持を得ており、IRC やメーリング リストには有益なユーザーや開発者のコ​​ミュニティが成長しており、ますます多くの便利なプラグインが常にリリースされています。Catalyst と同様に、Dancer は好みのテンプレート エンジン、セッション ストレージ バックエンドなどを選択できるように設計されており、必要に応じて独自のプラグインを作成してフレームワークを簡単に拡張できます。

Dancer について人々が何を言っているかを見るためのユーザーの証言については、新しい Web サイトのホームページの下部にあるセクションを参照してください: http://www.perldancer.org/

他のオプションを示すために、最近人気が高まっているもう 1 つの最新の Perl Web フレームワークであるMojoliciousもあります。

于 2011-02-22T15:57:39.393 に答える
4

Catalystは、Dancerと同じ抽象化を提供します。Dancerの長所、またはCatalystの短所、またはDancerの短所は、Catalystが開発者にPerlOOのベストプラクティスとMVCデザインパターンを順守させる方法にあります。しばらくの間webappsを実行した後、これはすべて明らかになります。

于 2011-02-22T16:03:22.660 に答える