12

最近では、ほぼすべての言語に対応するWeb アプリケーション フレームワークが多数提供されています。あなたの経験では、それらの長所、短所、および独自の機能は何ですか? 選択の贅沢を仮定すると、どのような要因があなたを他のものよりも考慮するように導きますか?

私が最も興味を持っているのは、あらゆるフレームワークを徹底的に比較することではなく、1 つまたは複数のフレームワークを使用した人々の直接的な体験です。うまくいけば、SO コミュニティには、 RailsASP.NETDjangoTurboGears、またはJSFなどについて良い経験も悪い経験も持つプログラマーがいます。また、SeasideWebblocksなどのあまり主流ではないフレームワークを使用している方がいれば、ぜひお知らせください。

プログラミング言語は明らかな違いですが、Java と Ruby のフレームワークはあまり面白くありません。これらのフレームワークのほとんどは、テクノロジー、ツール、および複雑さに対して、選択した言語と少なくとも同じくらいの投資をしているようです。だから私は次のようなことにもっと興味があります:

  • 開発スピードと利便性
  • 参入障壁 - 開発者のトレーニングと必要なインフラストラクチャの両方の観点から
  • ロックイン - フレームワークを切り替える必要がある場合、どのくらいのコードを保持できますか?
  • 柔軟性 - フレームワークによってアーキテクチャや設計が決まりますか? (それが良いことなのか悪いことなのかは、別の議論に任せるのがおそらく最善です。)
  • パフォーマンス、スケーラビリティ、および安定性 - 明らかに開発者次第です!
4

3 に答える 3

10

3つの人気のあるPythonフレームワークの各領域について簡単に説明します。これは私の個人的な経験と観察にのみ基づいています。

開発スピードと利便性

TurboGearsPylons、およびDjangoの場合、開発速度はほぼ同じです。最新のフレームワークであるため、新しいサイトを開始してページをまとめるのは簡単です。Pythonは開発とデバッグが速いことで有名であり、Pythonフレームワークは、これまでに使用した他のセットアップ(PHP、Perl、Embedded Perl、C#/ ASP.Netなど)よりも開発時間が短いと言えます。

参入障壁-開発者トレーニングとインフラストラクチャ

Pythonを知っていて、20分間のビデオチュートリアルを見て喜んでいる場合は、かなり完全なwikiタイプのサイトを最初から作成できます。または、ソーシャルブックマークサイトのチュートリアルを30分(インストールを含む)でウォークスルーできます。これらはTurboGearsの例ですが、他の2つのフレームワークにもほぼ同じチュートリアルがあります。

これらのフレームワークですぐに使用できるテスト/開発インフラストラクチャは、通常、ほとんどのサイトを完成させるのに十分です。いつでも、本番環境の要件を満たすためにコンポーネントを交換できます。たとえば、SQLiteはモデルのセットアップとテストデータのロードには問題ありませんが、実際に稼働する前や大量のデータを保存する前に、たとえばMySQLをインストールすることをお勧めします。

すべての場合において、要件は非常に低く、完全にスケーラビリティ要件によって決定され、フレームワークの特殊性ではありません。特定のテンプレート言語またはORMに慣れている場合は、おそらくすぐにプラグインされます。

固定する

これは、すべてのフレームワークに共通する一般的な問題です。言語を選択するときは、コードの再利用オプションを制限します。テンプレート作成者を選択すると、再びロックインされます(ただし、一般的に、他のものよりも変更が簡単です)。同じことがORMやデータベースなどにも当てはまります。これらのフレームワークが特に行うことで、ロックインを支援または妨害するものはありません。

柔軟性

これら3つのフレームワークを備えたMVCがすべてです。あなたが言ったように、それは非常に異なる議論です!

パフォーマンス、スケーラビリティ、および安定性

さて、あなたが良いコードを書くなら、あなたのサイトはうまくいくでしょう!繰り返しになりますが、これはさまざまな開発手法によって対処されるすべてのフレームワークにわたる問題であり、おそらくこの回答の範囲外です。

于 2008-09-27T01:02:48.480 に答える
5

ジャンゴ vs ストラット。

開発スピードと利便性。

Django - モデルを (Python で) 構築するのに必要な時間内に稼働し、管理マッピングを定義し (モデル クラスごとに 2 ~ 3 行のコード)、デフォルトのマスター/詳細ビューで動作する HTML テンプレートを作成します。

Struts - SQL でデータベースを定義してから、iBatis で ORM マッピングを定義する必要があります。次に、アクション クラスと JSP テンプレート ページを使用して、さまざまなアプリケーション コンポーネントを定義、テスト、および構築します。ああ、アプリケーションから JSP にデータを移動するには、EJB を定義する必要があります。すべてをコンパイルする必要があり、コンパイル ルールに適合するものを取得するためだけに、多くの詳細を処理する必要があります。

参入障壁- 開発者のトレーニングと必要なインフラストラクチャの両方の観点から

すべてのフレームワークと言語で一定です。これはほとんど気にしないアイテムです。本質的に簡単にトレーニングできる言語やフレームワークはありません。すべての Web フレームワークには、同様のインフラストラクチャ要件があります。

ロックイン- フレームワークを切り替える必要がある場合、保持できるコードの量は?

これはあまり意味がありません。Tomcat から Tomcat の派生製品に切り替えると、多くの Java コードを保持できます。そうしないと、通常、フレームワークを切り替えるときに多くのコードが保持されません。

柔軟性- フレームワークによってアーキテクチャや設計が決まりますか? (それが良いことなのか悪いことなのかは、別の議論に任せるのがおそらく最善です。)

実際、それは個別の議論ではありません。それがポイントです。フレームワークによってアーキテクチャが決定されます。これは良いことです。実際、フレームワークは、作成、テスト、デバッグ、またはサポートする必要のないコードです。アプリケーションがフレームワークによって実証済みの実行可能な構造に制限されているのは良いことです。

パフォーマンス、スケーラビリティ、および安定性- 明らかに開発者次第です!

パフォーマンスは言語です (フレームワークではありません)。それはデザインです。ある程度、その実装構成も。

スケーラビリティはフレームワークです (言語ではありません)。それは設計と構成です。

安定性は、OS、言語、フレームワーク、設計、プログラミング、QA、および実装構成など、全面的に見られます。

于 2008-09-27T01:46:29.530 に答える
1

これは信じられないほど主観的な質問です..これは、質問に追加する必要があるタグです。いくつかのコメントがすでに示唆しているように、あなたはすでにかなり良いガイドを指定しています。あなたは実際に何を求めていますか?この種のことについては何十億もの意見があり、間違いなく正しい答えはありません!

個人的には、.html を使い始め、php に移行し、ruby を試し (嫌いだった)、Python / DJango を発見し、それ以来ずっと幸せです。ただし、これは(おそらく)非常にユニークなパスであるため、マイレージは異なる場合があります:)

于 2008-09-27T00:13:19.533 に答える