2013-04-04 10 views
10

データベース(好ましくはmysql)バックエンドを使用してスケーラブルでメンテナンス可能なエンタープライズグレードのWebアプリケーションのためにdjangoとyiiのどちらかを選択しようとしています。このアプリは主にデータ入力に重点を置いていますが、カスタムワークフロー(基本的に自動生成された粗いフォームを超えて)とカスタムレポートがあります。私はCSの背景、MVCに精通して、C++のプログラミングの背景、C#を持っています。 8年前にphp、mysql、perl/cgiを使って同様のアプリを構築し、痛いことを思い出しました。 PythonまたはPHPの構文をもう一度習得する必要がありますが、言語をかなり早く取り上げます。 djangoとyiiについてオンラインで広範に読んでください。オープンソースの必要性のために.net mvcルートに行くことができません。 RoRでおしゃべりして、その言語を愛しましたが、私はまだ、生産グレードのアプリケーションのために、まだ起こる魔法に非常に快適ではありません。将来的かもしれない。だから、戻っジャンゴへのYii VS -djangoまたはyii dbとカスタムフォームとレポートを使用してプロダクションWebアプリケーションを構築する

決定要因は以下のとおりです。
1)簡単に学習曲線
2)特定の私が必要となるタスクに適し枠組み - 重いデシベル操作、カスタムUIの流れ(何もあまりにもGFX (通常のフォーム要素ですが、ジョインなどで複数のテーブルにまたがってデータを操作する必要がある場合)
3)dbでの驚きはありません(読んでも、django ormとmysqlですべてのgotchasを完全に理解できません)。
4)私は基本的な事柄
5のためのフレームワーク/言語を戦っていないのです何か)スケーラブルかつ高速な実行時間(私は多くはどのように1つのアーキテクトソリューションに依存して知っている)

してくださいアドバイス。両方のフレームワークで働いていることに精通している人からの助けを求めています。おかげでたくさんここ

+0

私は両方のdjangoとyiiでの経験を持っています....どちらも愛らしいです...しかし、yiiはもっと愛らしいです.....しかし、djangoのパフォーマンスは... Yii + apcの2倍以上です。 ....ので、ジャンゴは勝者です.... – MYNE

答えて

8

私の提案は、Djangoのだろう。 Djangoのフォームはクラスであり、従来のASPから.NET、Rails、Javaまで、私が過去16年間にわたって取り組んできたフレームワークの中で、私はDjangoのフォームをそれらのいずれかに対して実行する方法を採用しました。

サウスは、スキーマとデータの移行をばかばかしく簡単に行います。

特にPostgres用に少し微調整されているので、Django ORMを活用しようとしている場合は、MySQL経由でPostgresを使用することをお勧めします。 Djangoの管理者が不要でMySQLを使用する必要がある場合は、SQLAlchemyとAlembicをご覧ください。

Djangoの学習曲線は非常に平坦です。信じられないほど学びやすく、非常によく文書化されています。

My $ 0.02。

+0

お返事ありがとうございました。私はDjangoをチェックアウトします。もう1つの質問 - 私はdjangoプロジェクトがPHPベースのものよりApacheのサーバーに展開するのが難しいと聞いています。これが当てはまるなら、どんな考えですか? – webnew2013

+0

全くありません。私のフリーランス・アプリのほとんどは、ワンクリックでBeanstalkから直接WebFactionに配備されています。 WebFactionでDjango環境を設定するには、2回のクリックが必要です。私の仕事では、Fabricを使用してAWSにデプロイし、そこからオートスケールを行います。それは本当に簡単です。 – Brandon

11

私はこれが古いと知っていますが、私はこれに両方のフレームワークを使用して追加できるように感じています。

Yiiは、速くて速いフレームワークです。 Djangoは、デフォルトで有効にされたり強制されたりしない特定のもの(例えば、クロスサイトリクエスト偽造防止)のために、箱からすぐに安全です。私にとっては、組み込みのコードジェネレータが最大の利点でした。なぜなら、いったんそれを見つけて使い始めると、基本的に数分でフル機能のCRUDアプリケーションが吐き出されるからです。

PythonはDjangoの最大の利点であるため、Djangoは私の選択の枠組みです。 PHPでは、実際には言語が気に入っていますが、Pythonのきれいなオブジェクト指向性(クラスという言葉?)、クラス継承などはDjangoのようなフレームワークで本当に輝きます。 Djangoには、開発者が意図的に選択した組み込みのコードジェネレータはありません。それは強さと弱さの両方です。 Yiiのコードジェネレータは、フレームワークを実際に学習しようとしているならば、少し松葉杖になることができますが、Djangoを使ってDjangoの仕組みを学ぶと、自分で構築したため、フレームワークをうまく学ぶ。 Yiiを使用すると、生成されたコードがあり、カスタマイズが必要な場合、すぐにフレームワークとの戦いを開始できます。

DjangoのORMは非常に柔軟性があります。私は自分自身のSQLユーザーです。私のアプリケーションでは生のSQLを使っています。 Yiiのものはかなり良いですが、私はDjangoにもこの点で脚線を与え、Djangoは非常によく文書化されています。

私の経験上、YiiのインストールはDjangoよりやや簡単です。 Djangoは起動して実行するにはもう少し作業が必要です。 Djangoのtutorialは、Yiiのそれよりはるかに強力です。少なくとも私が始めたのはそれでした。

+0

".. Djangoに組み込みのコードジェネレータはありません.."、django admin -production ready-コードジェネレータではありませんか? – elsadek

+0

管理者は自動的に作成されますが、Yiiのやり方とは異なり、開発ファイルの場所には作成されません。あなたはDjangoの管理者をカスタマイズすることができますが、主に組み込みの機能をオーバーライドします。一方、Yiiは、基本的には、一連のコードを作成して直接カスタマイズすることができ、より早く学習することができました。 – trpt4him

+0

完全にあなたに同意します... Pythonは最高のストレンシーです...どのようなフレームワークです! – MYNE

2

優秀です。私はそれを学び、数時間以内に行くことができました。 Djangoの設定には、何か動作するために必要な設定とURLのマッピングが混乱しているため、苦労しました。私はDjangoがあなたがそれを学ぶとすぐれていることは間違いありませんが、私の経験ではYiiは学ぶのがずっと簡単でした。

誰かがYiiをPythonに移植することを本当に願っています。

関連する問題