Базовая консультация по семантике js MVC - PullRequest
2 голосов
/ 13 ноября 2011

Я создаю свой первый сайт на основе backbone.js, и у меня возник вопрос с семантикой.Мое JS-приложение структурировано так:

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

в моем файле application.js я создаю экземпляр Worksapce, и все идет нормально.

Вопрос в том, что если у меня есть загрузкаof sortof ... no .. Функции на основе MVC, которые мне нужно выполнять, иногда, скажем, как набор математических функций, используемых в разных местах.

Правильнее ли просто сбросить их в application.js илия должен посмотреть, чтобы расширить глобальный объект Math (который кажется немного чище, но хммм)

думаю, я ищу советы по гигиене: -)

[Редактировать]:

Просто чтобы избежать каких-либо недоразумений, у меня есть куча математических функций, которые мне нужны, чтобы выполнять некоторые векторные математические операции, а также несколько вещей, которые по своей природе не имеет JavaScript в своем собственном классе Math.Я использую некоторые из них в разных местах по всему приложению.Между прочим, этот вопрос можно было бы применить, если бы у меня тоже было много функций для работы со строками, аудио-видео и т. Д.

Ответы [ 4 ]

1 голос
/ 13 ноября 2011

Какие математические функции вы хотите добавить? Если математические функции специфичны для ваших моделей, я бы добавил их туда. Если они являются общими математическими функциями, которые можно ожидать в любой математической библиотеке, расширение глобального Math кажется мне подходящим. Все остальное, для чего я бы создал новый класс.

1 голос
/ 13 ноября 2011

У меня возникли проблемы с пониманием того, что вы спрашиваете здесь ...

Но математические функции чувствуют, что они должны быть частью вашей модели. Модель - это не просто набор объектов данных. Он включает в себя бизнес-правила, которые важны для вашего приложения. Он моделирует ваш мир, который часто включает в себя математику. Представление, как правило, не заботится о математике, если вы не занимаетесь рисованием или анимацией

Если рассматриваемые математические функции являются общими, то, может быть, вам просто нужна функция математической полезности? Я имею в виду, вы МОЖЕТЕ расширить объект Math, но зачем рисковать загрязнять это пространство? Если вы не хотите использовать его в своей модели, создайте собственную математическую утилиту.

0 голосов
/ 27 ноября 2011

Я закончил тем, что расширил подчеркивание во время выполнения, это, вероятно, не правильно, но природа подчеркивания, в основном являющаяся набором утилитарных функций, имело смысл присоединять мои утилитарные функции к этому пространству имен, поскольку многие из них использовались и дополнялисьфункции подчеркивания.

Любые мысли по этому поводу также будут оценены.

0 голосов
/ 13 ноября 2011

Если это не зависит от приложения, которое вы создаете, я бы сказал, что это должен быть отдельный файл. Расширение нативного объекта Math обычно считается плохой практикой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...