私はかなり長い間、Spine.js と CoffeeScript を使用して JavaScript MVC に取り組んできました。私はしばらくの間 Ruby on Rails を開発しているので、モデル、ビュー、およびコントローラーがそれぞれ何を処理する必要があるかを理解しています (それに関する私の適度な経験に基づいています)。しかし、Rails では、(一般的に言えば) 各コントローラーは基本的に一連のビュー (またはページ) を制御し、一度に 1 つ以上のモデルを処理するものであることを既に知っています。(たぶん、私はまだプロではないので、間違っていたら訂正してください)。
しかし、アーキテクチャに関しては、Spine でまったく異なるコンセプトを見つけました。私はそのドキュメントを読み、そのサンプル アプリに飛び込みました。残念ながら、すべての Spine サンプル アプリは単一ページ アプリを処理する方法を示していますが、これは現実の「より大きな」アプリケーションではもはや当てはまらないものです。(Spineを「シングルページアプリ」にのみ使用する必要がある場合は修正してください)。
次のような多くのページ/セクション/モジュールで構成される Web サイト (またはアプリ) があるとします。
1 - サムネイル ベースのリストなどを表示するホームページ 2 - 連絡先ページ 3 - 現在のユーザーのプロファイル管理ページ (通常の CRUD)
各ページは、上記のページへのリンク、検索入力フィールド、およびログアウト リンクを含むヘッダーと同じ主要構造 (またはレイアウト) を持っています (ログイン ページが別であることは既にわかっているので、詳しくは質問しません)。ここで認証)。
ここで難しいのは、パーツ全体を結び付ける方法が本当にわからないことです。Google と StackOverflow で検索しましたが、明確な答えがありませんでした。
1 - スパイン アプリのアプリケーションは 1 ページのみである必要がありますか? つまり、ヘッダーとフッターは固定されていますが、ユーザーがヘッダーをクリックしたタブに基づいてビューをロードおよびアンロードする動的コンテンツ DIV を使用していますか? それとも、各ページをスタンドアロンのスパイン アプリとして扱うべきですか?
2 - 1 つのページに複数のコントローラーがありますか? たとえば、アプリのメイン コントローラーとナビゲーション コントローラー (ヘッダー) は?
3 - 各コントローラーが 1 つのモデル、またはそれに関連付けられたモデルを処理する必要があるというのは本当ですか? (サンプルでは、タスク モデルとタスク コントローラーのように、それらの間に常に 1 対 1 の関係がありました)。
4 - アプリのインターフェイス関連の状態変数はどこに保存すればよいですか。現在のユーザーを「記憶」するモデルを作成する必要がありますか? または、さらに参照するためにどのタブを強調表示するかなどです。または、それらをコントローラーに保存する必要がありますか?
5 - 単一ページのアプリ (ただし、多くのセクションまたはモジュールを含む) になる場合、このページ内に読み込まれたセクションごとにコントローラーを用意する必要がありますか?
これらは経験豊富なプログラマーにとっては些細な質問かもしれませんが、どこから始めればよいか本当にわかりません。誰かが私を正しい軌道に導くことができれば、それは素晴らしいことです.
前もって感謝します!
DD