Показать сообщение отдельно
  #38 (permalink)  
Старый 13.09.2011, 20:04
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Мой подход. Правда он для интернет приложений более актуален, чем для сайтов.

1) из глобальных переменных нужен только один нейм спейс. Все остальные нейм спейсы и переменные внутри главного. Это однозначно - иначе при расширении могут возникнуть траблы. В лице нечайного изменения сторонним модулем кому нибудь нужной глобальной переменной.

2) Один компонент один класс/обьект. К примеру в одном обьекте можешь разместить информацию о бизнес обьекте, и методы модификации этой информации. Помоему этот паттерн эксперт называется. Я стараюсь им максимально пользоваться. Желательно чтобы разные компоненты были как можно меньше связаны.

3) Если не знаешь будет ли существовать компонент или нет. Используй систему сообщений для реализации слабого связывания. В отличии от прямого вызова, отсутствие компонента не приведёт к ошибке.

4) Если проект действительно сложный и большой, то не надо упаковывать всё в один файл. Лучше упаковать блоки функциональности по отдельности. Ядро отдельно. Админка отдельно , cтраница с товарами отдельно. Это есть смысл сделать хотябы потому что вряд ли все модули потребуются сразу. И грузить их разом накладно по времени. К приеру для админки. Админка + ядро. Для товаров Товары+ ядро и тд.

5) Желательно разбить всё приложение на 3 части пресловутый MVC. Это облегчит сопровождение.
А) слой Present ответственный за интерфейс.
Б) слой ответственный за логику самого приложения
В) Слой ответственный за данные. (мне он нужен редко если
честно, так как я стараюсь групировать данные и методы в бизнес слое) Это свёртыванием слоёв называется, и это нормальная. практика. Так что не надо ля-ля )))

6) Инициализируй все компоненты из которых состоит приложение в одном месте.

7) можно сделать что-то вроде. GetModule ("список модулей",function(){
действия по инициализации компонента. после загрузки модулей.
get Module должен проверять загружались ли требуемые модули уже. и если нет то грузить
});
Помоему во всех загрузчиках эта возможность уже предусмотрена. labJS к примеру.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 13.09.2011 в 20:40.
Ответить с цитированием