Я хотел бы рекомендовать использовать javascript в функциональном стиле, которому могут помочь такие абстракции, как coffeescript и underscore.js .
Кроме того, минимизация межмодульного взаимодействия и использование кода, управляемого событиями, - отличный способ сохранить весь ваш проект организованным. Мне вызывающе нравится, как backbone.js обрабатывает слабую связь вида с модулем, имея представление связывает события изменения с модулями.
Код, основанный на функциональных событиях, отлично подходит для макроструктуры. Я также посоветовал бы связать JavaScript с DOM. (Опять же backbone.js имеет прекрасный пример того, как модель полностью независима от домена, и даже представления не зависят от домена. Для всех, что вас интересует, представления могут записывать данные в WebSocket)
Лично я также сторонник наличия одного центрального файлового менеджера, а не сложной структуры требования / включения на каждой странице. Загрузка модулей JavaScript из вашего центрального загрузчика на основе постраничного обнаружения функций. (См. Здесь пример центрального файлового менеджера).
Я также хотел бы отстаивать растущую возможность хорошего повторного использования через node.js . Довольно много людей работают над переносом дословного кода браузера на node.js или дословным копированием кода узла .js в браузер. (см. YUI3, работающий на nodejs , node.js в браузере , commonJS в браузере По общему признанию, большинство из них являются WIP и не стабильны.)