8

私たちは、スケールの可能性の高いウェブサイトを構築する準備をしています。スケールが来たら、それに備えたいです!PHP、Apache、および MySQL を使用することにしました。ある種の PHP フレームワーク (PHPulse、CodeIgniter、CakePHP、Zend など) を使用する必要がありますか? Web サイトの性質は Facebook に似ていますが、ほとんどがテキスト データです (画像や動画は多くありません)。Web サイトはクラウド上でホストされます。

あなたは何をお勧めします?

よろしく...

4

6 に答える 6

7

この質問は何度も聞かれました。一般的なコンセンサスは、常にできることを行うことです。最初から拡張性が高すぎることを心配する必要はありません。最初からあまりにもスケーラブルに構築しようとするのは大変なことであり、ほとんどの場合、あきらめてしまうでしょう。

絶大な人気のために問題が発生し始めたら、それは素晴らしいことです! その後、あなたは十分に人気があり、できれば十分な収入を得て、より高価なホスティングやハイエンドのプログラミング/データベース フレームワークやエンジンの支払いについて心配しなければならなくなります。

于 2011-05-13T07:51:02.680 に答える
3

ゼロから構築します。すべてのビットを制御すると、最適化に役立ちます。Facebookはそのphpコンパイラも制御しています:http://developers.facebook.com/blog/post/358/

PHPはすでにフレームワークおよびテンプレートエンジンであるため、フレームワークを使用しないでください:http: //toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html

memcachedのようなキャッシュライブラリを使用します。クラウドで使用できるかどうか、またはクラウドが独自のキャッシュシステムを提供する可能性があるかどうかはわかりません。

于 2011-05-13T08:32:25.167 に答える
1

ドメインレイヤーが残りのコードから可能な限り緩く結合されていることを確認するために、通常よりも多くの努力を払ってください。そうすれば、他のレイヤーの問題を特定した場合に、変更のためにドアを開いたままにしておくことができます。

フレームワークを使用して起動して実行しますが、独自のCRUDユーティリティ(CI、私はあなたを見ています)を使用することに注意してください。

ORMソリューションを使用することにした場合は、多くのフレームワークとうまく連携するソリューションを選択してください。

于 2011-05-13T08:15:08.863 に答える
1

すぐに拡張する必要があることがわかっている場合は、独自のフレームワークをゼロから構築するのではなく、既存の実績のあるフレームワークを使用することをお勧めします。スケーラビリティはそれほど重要ではありませんが、後で作業を簡素化し、ボイラープレート コードが十分に機能するという確信が持てるようになります。

一方、前述のフレームワークのいずれも使用したことがない場合は、最初の学習曲線を超えるために必要な時間を比較検討することを検討してください。

于 2011-05-13T07:53:22.080 に答える
0

すべてをゼロから構築する場合、確かに時間がかかりますが、コードの内部ロジックを知っているのはあなただけです。対照的に、フレームワークを使用すると迅速な開発が可能になりますが、その場合、誰でも開いているコードでWebサイトを作成しているため、ハッキングされる可能性が高くなります。それぞれの方法には、独自のプロとコーンがあります。とにかく、あなたはphpの最高のフレームワークをチェックすることができますPHPのトップ10フレームワーク。そして私はCodeIgniterをお勧めします

于 2011-05-13T07:56:11.737 に答える
-1

今日はもっと良い言語があるので、私はノーと言います。Python、Ruby、および C# には、php よりもはるかに優れた名前空間と開発ツールがあります。

しかし、あなたの本当の問題は言語ではありません。これはより集中化されるため、データベース層になります。memcached を使用して、データベースの負荷を軽減できます。ORM を使用している場合は、ストレート クエリを実行し、一括挿入を実行するか、遅延読み込みクエリではなく結合を使用して関連オブジェクトを取得するすべての機能があることを確認してください。

また、キューを使用してページの読み込みを高速化する必要があります。ページ要求の外部で実行できる低速の操作がある場合は、それらをキューにプッシュし、後で (場合によっては別のサーバーで) 処理します。メールと画像のサイズ変更が良い例です。

真にスケーラブルな Web アプリケーションが必要な場合は、Apache や MySQL バブルの外に出て、Nginx や非リレーショナル データベースなどのツールを使い始める必要があります。

今のところ、問題が発生する前に心配しすぎないようにするのが最善です。選択したフレームワークが疎結合であることを確認して、データベース レイヤーの切り替えなどを実行できるようにします。疫病のような codeigniter は避けてください。これはまったくモジュール化されておらず、ORM がなく、フォーム ライブラリが非常に貧弱です。Django(python) をお勧めします。クラウド ホスティングを行っている会社はたくさんあります。PHP から Python に切り替えるショップを見たことがあります。特にホスティングを選択している場合は、PHP に縛られる必要はないと考えてください。

編集して、Cartoonle Django に返信します。しかし、本当に PHP が必要な場合は、おそらく Symfony ですが、遅いことで知られています。Kohana は CI に似ていますが、よりコミュニティ主導で OOP であるため、codeigniter の主要な欠陥のいくつかは kohana でずっと前に解決されています。私もCakeのいいところは聞いたことがありますが、自分で味わったことはありません。codeigniter に関しては、はい、多くの人が気に入っています。シンプルですが、醜いショートカットを支持する多くの優れたソフトウェア パターンが欠けています。私はそれで1年間働きましたが、しばらくすると、チームの全員が、車輪の再発明が多すぎて別の何かが必要であることに同意しました. しばらく使っていると、問題が発生し始めます。私たちはしばらく議論し、最終的には実際に Django に行き着きました。難しい決断でしたが、生産性が向上しました。さらに、Google もそれを使用しています。

真剣に python は、comp sci 101 コースおよび専門的に使用される唯一の言語の 1 つです。Python の目標の 1 つは、comp sci の教育を容易にすることでした。それほど怖いものではありません。ターミナルを開いて入力しpython、遊んでみてください。PHP-pear のようなものですが、git、gzip、hg、および素晴らしい python パッケージ リポジトリ以外の多くの形式でも動作する pip など、そのための優れたツールがたくさんあります。そのためのパッケージもたくさんありますが、PHP ではあまり見られません。http://djangopackages.com/

少なくとも 2 時間かかるチュートリアルを実行して、チャンスを与えてください。組み込みのWebサーバーが付属しているため、Python自体以外にセットアップするものはありません.

http://docs.djangoproject.com/en/1.3/intro/overview/

于 2011-05-14T06:18:49.537 に答える