6

わかりました。私はこのbackboneJS全体に頭を悩ませようとしています。この例で説明されているように、サイトをモジュールに分割し、各モジュールをモデル、コレクション、およびビューに分割する必要があることを理解しています。

私のJSファイル構造は現在次のようになっています。

-js
  -application.js

  -lib
    -jquery.min.js
    -backbone.min.js
    -underscore.min.js

  -modules
    -newsfeed.js //activity feed
    -file.js // page to upload files to
    -members.js // page that show other members of group
    //-general-site-logic.js??

2つの質問があります:

  1. すべてのアプリケーションロジックをBackboneJSから制御する必要がありますか?そうでない場合、この個別のロジックはアプリケーション構造のどこにあるべきですか?確かに、バックボーンはクライアント側のすべてのアクティビティを制御することはできません。コレクションを含まないアクティビティはどうですか?

  2. BackboneJSを使用する場合、モジュールを管理するためにRequireJSを使用する必要がありますか?私はこの例を見つけましたが、Backboneのすでに混乱している概念をさらに複雑にしているようです。

私は非常にjavascriptの重いアプリに着手しようとしていますが、コードがきのこになり始める前にこれを取得したいと思っています。

4

2 に答える 2

8

Backboneの優れている点は、必要に応じて組み合わせることができる便利なピースのコレクションにすぎないことです。好きなように整理できます。

確かに、バックボーンはクライアント側のすべてのアクティビティを制御することはできません。

なぜだめですか?私はかなり大きなクライアントサイドアプリを持っており、すべてのコード(jQueryプラグインなどを除く)がバックボーン構造(ビュー、モデル、コレクション、ルーター)を使用して記述されています。

この例では、Railsを使用しているため、他のJSファイルが必要になることを心配する必要はありません。プロジェクトを多くのjs(コーヒー)ファイルに分割し、「アセットパイプライン」がすべてを1つのjsファイルにマージします。(アセットパイプラインにいくつかの順序付けルールを通知する必要がありますが、コレクションの前のモデル、ビューの前のコレクションなど)

これを行うと、次の設定が行われます。

-assets
  -javascripts
    -backbone
      -collections
      -helpers
      -models
      -routers
      -templates
      -views
      -bootstrapper.js

もちろん、それが私たちのやり方です。大規模なプロジェクトの場合、コンポーネントの場所を常に把握しており、さまざまなサブビュー用にサブフォルダーを作成します。例えば:

-views
  -people
    -people_list.js
    -people_item.js
  -orders
    -order_list.js
    -order_item.js
    -order_form.js

ただし、小規模なプロジェクトでは、すべてを1つのJSファイルに入れることができ、問題はありません。ほとんどのおもちゃの例はこのように配置されています。

中間レイアウトは、次のようにモデルをビューから分離するだけの場合があります。

-models.js // models and collections
-routers.js
-views.js

これから得られるべきことは、「好きなように整理する」だと思います。プロジェクトの規模とチームの組織の理解に意味のあることを行います。

バックボーンは構造を提供します。ただし、その構造がどのように設計されているかについては意見が分かれていません。

于 2011-10-14T10:47:02.373 に答える
0

それが私がブートストラップ、 backbone.js、coffeescript、sinatra、jasmine、およびスケルトンを統合するプロジェクトスターターを持つのに役立つ場合。

プロジェクト構造を開始し、技術スタックの統合にかかる時間を節約できます。また、レスポンシブデザインにはスケルトンcssを使用しています。

于 2012-07-01T11:52:13.520 に答える