Кто-нибудь может предложить хорошую клиентскую архитектуру и структуру для крупномасштабных веб-приложений? - PullRequest
3 голосов
/ 18 августа 2010

Я создаю крупномасштабное веб-приложение.Он будет расти в будущем, поэтому мне нужна хорошая внутренняя и внешняя архитектура для моего приложения.в конце сайта я использую Zend Framework, поэтому архитектура мне подходит.Но сначала работа с javascript и ajax без хорошей архитектуры делает последующие изменения трудными и запутанными.

Пока я использую свою собственную архитектуру.У меня есть большой объект для всего приложения, скажем, BigObject.Я расширяю его, когда модули добавляются на сайт.скажем, у меня есть модуль загрузки.Я использую это:


BigObject.upload={
    //initialization
    init:function(){
    },
    //I tried to use what I named semi-MVC architecture!!!
    controllers:{
        //index is a controller
        someController:{
            init:function(){
                //initialization
            },
            someAction:function(){
                //Code goes here
                //call a model if necessary
                //call view script
                BigObject.upload.views.someController.someAction();
            }
        }
    },
    models:{
        //models required for this module like loading contents with ajax.
        loadContent:function(part,callback){
        }
    }
    views:{
        init:function(){
            //initialize view
        },
        someController:{
            someAction:function(){
            }
        }
    }
}

Что вы думаете?Есть ли лучшее решение этой проблемы?Кто-нибудь задумывался о хорошей структуре для интерфейсной части веб-приложений (например, о том, что у нас есть на стороне, хорошей файловой структуре и объектно-ориентированных методах)?

Ответы [ 3 ]

3 голосов
/ 18 августа 2010

Многие люди настаивают на Dojo или YUI для больших приложений. Это честные фреймворки, где большинство всего, что вы найдете, - это библиотека.

Лично я склонен придерживаться jQuery. Я создаю плагины jQuery или виджеты jQueryUI по мере необходимости. Мне удалось продвинуть jQueryUI довольно далеко.

Все попадает в $.fn.myPlugin или $.ui.myWidget. Для меня это дает дополнительное преимущество, так как заставляет вас сохранять код очень модульным и переносимым (при условии соблюдения соглашений jQuery / jQueryUI).

$(element).myWidget({
    color:'eggplant',
    someValue:42
});

$.upload(args);
2 голосов
/ 15 августа 2012

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

Взгляните на http://boilerplatejs.org. Это не библиотека, а фреймворк, объединяющий некоторые ведущие в отрасли библиотеки с архитектурными шаблонами для крупномасштабной разработки javascript.

0 голосов
/ 18 августа 2010

Мой ответ: спросить, зачем тебе это?Я работал над множеством приложений, в которых используется javascript, но одна вещь, которую я узнал, состоит в том, что лучшее, что можно сделать, - это свести к минимуму javascript и, особенно, объектно-ориентированный javascript.Веб-страницы с большим и сложным javascript, как правило, работают медленно, требуют много памяти и требуют отладки во всех вариантах браузера.

...