4

多くの調査の結果、Python ベースのソーシャル ネットワーク/cms をまとめる最良の方法と思われるもののリストを作成しましたが、これらのコンポーネントのいくつかがどのように組み合わされるかについていくつか質問があります。

特定のコンポーネントについて質問する前に、構築するサイトの主な機能をいくつか紹介します。

  • 最新のほとんどデスクトップのような GUI
  • 高度な html5 サブアプリケーションをホストする将来の機能 (例: http://www.lucidchart.com )
  • 機能とユーザー負荷の両方に対する高いスケーラビリティ
  • アイテム/グループ単位でコンテンツをパスワード保護および許可管理するユーザー機能
  • 典型的なソーシャル ネットワーク機能
  • 将来的に縮小されたモバイル版を構築する能力

使用を検討しているツールのリストは次のとおりです。

Google App Engine
Python Django Pinax パジャマ wxPython

そして質問:

  1. Google App Engine -- パズルの多くのピースが整っているように見えるので、これは追跡に切り込む試みです。質問: この選択でオプションを制限していますか? 例: データストアがリレーショナルではない? Business バージョンでの SQL サポートを待つべきですか?

  2. Python -- 最初は 'drupal' を考えていましたが、最終的には、明日存在するかもしれないし存在しないかもしれないモジュールに依存することと、そのテンプレート システムの制限はノーノーであると判断しました。その API を学ぶことも、他の場所では役に立たないでしょうが、Python は言語のスイス アーミー ナイフのように見えます。質問: GAE では v.2.5.2 が必要ですが、python.org では 2.5.5 を推奨しています。どちらをインストールしますか?

  3. Django -- v.0.96 が GAE に組み込まれています。アップグレードできるようです。質問: 最新バージョンにアップグレードしない理由はありますか? HTML5 サポートの欠如を回避する方法は?

  4. Pinax ( http://pinaxproject.com ) Django の上に乗っており、誰もが望むソーシャル ネットワーク機能のほとんどを提供しているようです。質問: 使用しない理由は? 代替案?

  5. パジャマと wxPython -- これは少し混乱する部分です。これらの背後にある基本的な考え方は、GUI を構築する機能です。GAE/Python ルートの前に、Silverlight と Flash を検討しましたが、HTML5 アプリのいくつかの動作バージョンは、代わりに HTML5/Javascript ルートを選択するのに十分な数のアプリケーションがブラウザーの最新のバッチで既に実行されていることを確信させました。質問: Python/Django を拡張/補足して、アプリのような HTML5 インターフェイスを構築するにはどうすればよいですか? パジャマと wxPython は進むべき道ですか? それとも、考え方を完全に変えるべきですか?

これらの質問の一部またはいずれかに対する回答は、非常に役立ちます。これがあまり意味をなさない場合は、私の無知を許してください。私の Web プログラミングへの最後の冒険は、5 ~ 6 年前のまともなサイズの LAMP Web サイトでした。デスクトップ側では、私のプログラミング経験は、非常に特殊なタスクを達成するために学習し続けている非常に高レベルのスクリプト言語に要約されます :)

4

1 に答える 1

3

Django サイトを GAE にデプロイしたことのある人として、理想的なソリューションに到達することはできないと断言できます。Django on GAE は、ORM が正しく機能しないため、Django の優れた側面のいくつかを見逃しています。最良の妥協点は、Django-nonrelを使用して機能を追加することです。

ただし、これには独自の問題があります。Django アプリで使用されるファイルとメモリの数が多いため、アプリがアイドル状態になるとすぐにコードがメモリからアンロードされます。つまり、GAE が圧縮されたモジュールを解凍している間、サイトのコードがメモリからアンロードされた後、訪問者は最初のページ ビューで約 6 秒の遅延に頻繁に遭遇します。サイトがビジー状態になると、これは問題になりませんが、サイトがまだ新しく、不明な間は、パフォーマンスの問題が発生します。:-(

次に、私はカスタム CMS を構築した会社で働いたこともあり、特に最新のフレームワークを使用すると、最初の 80% は非常に簡単であると言えます。ただし、残りは非常に難しい場合があります。たとえば、ユーザー ロールとカスタム コンテンツ タイプは、2 つの難しい側面です。したがって、巨人の後ろに立って、ニーズをほぼ完全に満たす CMS または CMS フレームワークを見つけ、それを拡張して必要な余分な作業を行うことを強く検討してください。

つまり、あなたのポイントに答えると:

  1. はい、オプションを制限していますが、それで問題ない場合があります。ほとんどの開発者は、nosql モデルよりもリレーショナル モデルに慣れています。そのため、より多くのオープンソース ソフトウェアがそれを念頭に置いて構築されています。また、GAE はクローズド ソース プラットフォームであり、オープン ソース開発者の妨げにもなっています。App Engine Oilは、App Engine 用に最適化された CMS フレームワークで、あなたにぴったりです。また、GAE をサポートするweb2pyも見てください。

  2. Python を使用すると、非常に生産的であることがわかりました。以前はたくさんの PHP を書いていましたが、今では見苦しくなってしまいました。とはいえ、記述しなければならないコードの総行数について考えてみてください。Drupal を高品質の既製モジュールで動作させることができれば、コードの 10 分の 1 しか必要としないことに気付くかもしれません。ちなみに Drupal のコツは、主に高品質なモジュールだけを使うことです。履歴を見て、開発バージョンを使用しないようにしてください。IRC で作者に連絡してみてください。Drupal を使用すべきだと言っているわけではありませんが、Drupal で信頼できるサイトを作成することは可能です (たとえば、whitehouse.gov)。

  3. あなたは古典的なGAE/Djangoの問題にいます。0.96 を使用すると、優れたパフォーマンスが得られますが、多くの優れた 1.0 以降の機能が失われ、ORM とそのすべての利点が得られません。新しいバージョンの Django を使用すると、上記のパフォーマンス/メモリの問題が発生します。

  4. 私は自分の会社で pinax を調査しようとしています。私はそれを非常にカーソルで一瞥しました。非リレーショナル モデルのバックエンドが適切にサポートされているかどうかはわかりません。おそらく、django-nonrel を確認する必要があります。ただし、ここでは比較的試行されていないソリューションに投資することになることを知っておいてください. Django ユーザーのごく一部が Pinax を使用しており、さらに少数のユーザーが非リレーショナル バックエンドで使用しています。したがって、上記のポイント 2 で述べた非常に実験的なシナリオになります。

  5. 個人的な経験を提供することはできません。パジャマについては何度か調べました。しかし、私は HTML CSS と JS を書くのが好きです。私はコントロールするのが好きです。私は、プログレッシブ エンハンスメントと、ユーザーがすべての機能を持っていない場合に何が表示されるかを知ることが好きです。また、モバイル クライアントに明示的に対応していない新しいアプリは、暗黙のうちに自らの足を引っ張っていると思います。インターネット ユーザーの 15% は、スマートフォンだけでインターネットを利用しています。パジャマでどんな体験をするのか?

  6. これについては言及されていませんが、プラットフォームを選択する際に考慮すべきことの 1 つは、ベンダー ロックインと移植性です。GAE 向けのソリューションを開発して、やりたいことを実行できないことがわかった場合、それを他のソリューションに移植できますか? どのくらいの手間がかかりますか?GAE 用に大量にコーディングしたり、そのアーキテクチャーにコミットしたりすると、それで行き詰まったり、移動するために書き直したりすることになります。Django または Web2py を使用すると、これを軽減できます。

そうは言っても、Python GAE の大きな利点は、非常に生産的になり、結果を即座に確認し、サイトが小さいうちに無料でホスティングし、優れたスケーラビリティを実現できることです。これらは小さなことではありません。そこには大きな価値があります。

于 2011-06-01T20:48:07.363 に答える