советы по работе над большим проектом javascript - PullRequest
12 голосов
/ 17 декабря 2010

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

Однако сейчас я делаю довольно большой проект, связанный с javascript,интерфейс на основе jquery, который взаимодействует с серверной частью путем отправки / получения JSON через Ajax.

Мне интересно, не могли бы вы предоставить некоторую полезную информацию о том, как работать с большими проектами javascript - есть липолезные инструменты / библиотеки / хорошие практики?

Заранее спасибо.

Ответы [ 6 ]

5 голосов
/ 17 декабря 2010

Мой один большой совет: modularize

В JavaScript переменным очень просто замять другие переменные.Чтобы этого избежать, модульность обязательна.Есть несколько способов воспользоваться преимуществами правил области JavaScripts, чтобы минимизировать возможность конфликтов переменных.

var myProject = {};

myProject.form = function(p_name, p_method, p_action)
{
    var name = p_name,
        method = p_method,
        action = p_action;
    var addInput = function(p_input)
    {
        // etc...
    }

    return {
        addInput: addInput,
        name: name
    };
}

myProject.input = function(p_name, p_type, p_value)
{
    var name, method, value;
    var setValue = function(p_value)
    {
        value = p_value;
        return true;
    }

    return {
        setValue: setValue,
        name: name
    };
}

// etc...

Если вы осторожны с использованием var и следите за областью своей функции, то у вас естьтолько одна глобальная переменная - myProject.

Чтобы получить новый объект формы, вам нужно просто сделать следующее: var myForm = myProject.form('form1', 'post', 'post.php').

4 голосов
/ 17 декабря 2010

Вы можете проверить Backbone.js

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

2 голосов
/ 17 декабря 2010

Григорий,

Даже если я несколько месяцев назад перешел из бэкэнда в интерфейс пользователя, следую только этому подходу

  1. Прочитайте все концепции jquery либо из Google, либо через какую-то книгу или черезДокументация jquery.
  2. следуйте некоторым рекомендациям jquery http://psdcollector.blogspot.com/2010/03/77-best-jquery-tips-i-have-ever-read.html
  3. пишите функции utitlity для всего повторяющегося кода, такого как getcookie, подстроки и т. д. и т. д.
  4. продолжайте получать вашикод, проверенный опытным человеком, который может направить вас
  5. к сообщению в stackoverflow, если вы застряли где-либо.
  6. , так как это большой проект, разделите его на несколько файлов и используйте правильное определение имен.

пожалуйста, дайте мне знать, если вам нужно что-нибудь еще

2 голосов
/ 17 декабря 2010

jQuery и YUI 3: Повесть о двух библиотеках JavaScript - это хорошее сравнение их в контексте сложного приложения, а также полезные советы для программистов jQuery.

1 голос
/ 17 декабря 2010

Лучший совет - хранить ваш код сегментированным в разных файлах как "классы". Я лично ненавижу работать с файлом длиной более нескольких сотен строк.

Затем соберите и уменьшите код с помощью одного из инструментов в Интернете, например Shrinksafe или Google Closure Compiler

Обратите внимание, что Dojo, YUI и Ext предназначены для работы с большими Ajax-приложениями. Вы будете немного бороться с JQuery. Но я предполагаю, что это приложение не все , что большое, и у вас все будет хорошо.

0 голосов
/ 17 декабря 2010

Рассматривали ли вы проверить MooTools?

MooTools - это компактный модульный Object-Oriented JavaScript framework, разработанный для среднего и продвинутого разработчика JavaScript.Он позволяет вам писать мощный, гибкий и кросс-браузерный код с его элегантным, хорошо документированным и последовательным API.

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