私は現在取り組んでいるサイドプロジェクトのプロトタイピング/概念実証フェーズの終わりに近づいており、いくつかの大規模なアプリケーション設計の決定を決定しようとしています。このアプリは、アジャイル開発プロセス向けに調整されたプロジェクト管理システムです。私が下す必要がある決定の1つは、従来のマルチページアプリケーションとシングルページアプリケーションのどちらを使用するかです。
現在、私のプロトタイプは従来の複数ページのセットアップですが、backbone.jsを見て、Javascript(jQuery)コードに構造をクリーンアップして適用しています。Backbone.jsは複数ページのアプリケーションで使用できますが、単一ページのアプリケーションでさらに輝いているようです。単一ページのアプリケーション設計アプローチを使用することの利点と欠点のリストを考えています。これまでのところ:
長所
すべてのデータは何らかのAPIを介して利用できる必要があります。これは、アプリケーションにAPIを保持したいので、ユースケースにとって大きな利点です。現在、データの取得/更新の呼び出しの約60〜70%がREST APIを介して行われています。単一ページのアプリケーションを実行すると、アプリケーション自体がREST APIを使用するため、REST APIをより適切にテストできます。また、アプリケーションが成長するにつれて、API自体も成長することを意味します。これはアプリケーションが使用するものだからです。APIをアプリケーションのアドオンとして維持する必要はありません。
より応答性の高いアプリケーション-最初のページの後に読み込まれるすべてのデータは最小限に抑えられ、コンパクトな形式(JSONなど)で送信されるため、データ要求は一般に高速であり、サーバーの処理はわずかに少なくなります。
短所
- コードの複製-たとえば、モデルコード。サーバー側(この場合はPHP)とJavascriptのクライアント側の両方でモデルを作成する必要があります。
- Javascriptのビジネスロジック-これが悪い理由について具体的な例を挙げることはできませんが、だれでも読むことができるJavascriptのビジネスロジックを持っていると感じることはできません。
- Javascriptのメモリリーク-ページがリロードされないため、Javascriptのメモリリークが発生する可能性があり、デバッグをどこから開始すればよいかさえわかりません。
また、両刃の剣のようなものもあります。たとえば、単一ページのアプリケーションでは、アプリケーションが特定の要求に必要な最小限のデータを要求するため、各要求で処理されるデータは大幅に少なくなりますが、サーバー。それが良いことなのか悪いことなのかはわかりません。
単一ページWebアプリケーションの長所と短所のうち、プロジェクトにどの方向に進むべきかを決定するときに留意すべきことは何ですか?