Каков рекомендуемый способ организации больших прорастающих проектов? - PullRequest
3 голосов
/ 20 января 2012

Я просто смотрю на Sproutcore (gem версия 1.6.0.1), чтобы посмотреть, что я могу с ним сделать ... так что извините за вопросы для начинающих ...

Я прошел черезУчебник и посмотрел на док-мини-сайт.

Мне интересно, как я должен организовать мои файлы исходного кода.После создания действительно простого приложения todo у меня уже есть один грязный монолитный файл javascript, который содержит модель, некоторые представления, некоторые контроллеры представления и т. Д. Я не могу изобразить это масштабирование хорошо.

У меня естьзаметил, что если я добавляю еще один js-файл, он автоматически вставляется в проект при загрузке приложения в браузере, но я догадываюсь, в каком порядке идут эти файлы - по алфавиту мой файл (test.js) должен был быть включен раньшеtodos.js, но это не так.

Какой рекомендуемый подход к организации крупномасштабного приложения;Есть ли какие-то рекомендации для этого?

Не вижу ничего на веб-сайте sproutcore, как ни странно ..

Что, если я хочу делиться моделями между приложениями, это тоже возможно?

Спасибо

1 Ответ

4 голосов
/ 20 января 2012

Вспомогательные инструменты должны упорядочить файлы для вас.Конечно, вы не можете их использовать.Вот структура папок, которая у меня есть из проекта, который я делал некоторое время назад

enter image description here

Итак, в корневом каталоге проекта есть apps dir, frameworks dirи Buildfile и README (другие вещи, которые вы видите, не нужны для прорастания).

В каталоге приложений вы видите основной каталог приложения (в данном случае sudoku).Под ним вы видите каталоги, которые напрямую связаны с объектами, которые вы собираетесь создать - источниками данных, контроллерами, моделями, представлениями, состояниями и т. Д. Если вы поместите более одного приложения в каталог apps, выможет получить доступ к обоим из localhost:4020/, то есть localhost:4020/app1 против localhost:4020/app2

Я не раскрыл frameworks dir, но в нем все рамки, используемые проектом.Поэтому, если вы хотите изменить sproutcore, вы можете поместить версию, которую вы используете, в фреймворки, и инструменты сборки будут использовать эту версию.Это хорошая идея, чтобы сделать вашу модель слоя своим собственным каркасом, чтобы вы могли использовать его с другими проектами, если хотите.Ваша модель платформы должна быть полностью отделена от остальной части приложения;он должен предоставлять API, который будет использоваться любым клиентским приложением.

Вы можете создавать другие каталоги в этих каталогах по своему усмотрению.Например, если у вас есть сложное приложение с моделью Person, вы можете создать каталоги person в каталогах models, views, controllers и т. Д., А затем поместить свой код в их.

Обратите внимание, что если у вас есть объект PersonController, имя файла будет person.js в соответствии с соглашением, но это ваше дело.

...