2011-11-13 11 views
2

私はbackbone.jsに基づいて私の最初のサイトを構築していますが、私はセマンティクスに関する質問を少ししています。 私のJSアプリがそうのように構成されている:私application.jsファイルにバックボーンjs MVCセマンティクスのアドバイス

application.js 
/collections/WorkspaceCollection.js 
...buch of other more atomic collections 
/views/WorkspaceView.js 
...buch of other more atomic views 
/controllers/WorkspaceController.js (extends router) 
...bunch of other atomic controllers 
/models/WorkspaceModel.js 
...bunch of other atomic models 

私はWorksapceをインスタンス化し、それがビジネスの罰金だについては、それが行きます。

もし私がsortofのロードを持っていたら...いいえ..時々実行する必要があるMVCベースの関数は、さまざまな場所で使われている数学関数のようなものです。

は単にapplication.jsにこれらをダンプすることがより正しいですか私はグローバルなMathオブジェクトを(つまり、なるほどビットクリーナーようだが)

私は衛生のヒントを探しています推測拡張することになります - )

[編集]:

はちょうど私が、私はいくつかのベクトル数学だけでなく、JavaScriptのdoesntが、本質的にそれ自身のMathクラスに持っているいくつかのことを行う必要がある数学関数の束を持って、任意の混乱を避けるために。 私は、これらのいくつかをアプリ全体のさまざまな場所で使用しています。 ちなみに、この質問には、文字列、オーディオビデオなどの機能があっても当てはまります。

答えて

1

私は...ビットまたはトラブルあなたはここに求めているものを理解した

しかし、彼らはあなたのモデルの一部であるべきのような数学関数を感じています。モデルは単なるデータオブジェクトの束ではありません。アプリケーションに重要なビジネスルールが含まれています。それはしばしば数学を含むあなたの世界をモデル化します。あなたがもっとネイティブの絵やアニメーションをやっていない限り、ビューは通常、数学についてはあまり気にしません。

問題の数学関数が一般的な場合は、多分数学ユーティリティ関数が必要ですか?つまり、Mathオブジェクトを拡張することはできますが、そのスペースを汚染する危険性はなぜですか?あなたのモデルにそれを望んでいない場合は、独自の数学ユーティリティを作成します。

1

追加する数学関数は何ですか?数学関数があなたのモデルに固有のものなら、私はそれらをそこに追加します。それらが数学ライブラリで期待される一般的な数学関数であれば、グローバル数学を拡張することは私にとってはうまくいくようです。それ以外の場合は、私は新しいクラスを作成します。

0

ビルドしているアプリケーションから独立している場合は、別のファイルにする必要があります。ネイティブのMathオブジェクトを拡張することは、一般に悪い習慣とみなされます。

0

私は実行時にアンダースコアを伸ばしてしまいましたが、これはおそらく正しくはありませんが、アンダースコアの性質は基本的に功利主義的機能の集合であり、アンダースコア関数を補完します。

これについてのご意見もありがたいです。

関連する問題