Текущая лучшая практика для модульных приложений Javascript

#javascript #mobile

#javascript #Мобильный

Вопрос:

Не собираюсь начинать пламенную войну 🙂

Я хочу создать модульное приложение javascript для мобильных устройств (реализация green field). Итак, требования заключаются в том, что он должен быть относительно легким, поддерживать отложенную загрузку вспомогательных модулей на основе решения времени выполнения (например, пользовательских настроек) и иметь минимальные возможности шаблона и MVC. Связь с серверной частью, вероятно, будет основана на websocket API (если это что-то изменит). Подумайте что-то вроде www.twitter.com это должно выполняться внутри мобильного Safari.

Я хорошо разбираюсь в jQuery и слышал о множестве новых фреймворков javascript (backbone.js , require.js , zepto.js и так далее), Но у меня не было возможности их использовать. Я сомневаюсь, что у меня достаточно времени, чтобы изучить их все и создать прототип, поэтому я ищу некоторую мудрость сообщества относительно того, что считается лучшей практикой в настоящее время.

Спасибо.

Комментарии:

1. Вопрос, основанный на мнении.

Ответ №1:

Хорошая структура приложения — ваш друг при написании приложений на JavaScript. Я взглянул на позвоночник и магистраль, но в итоге использовал JavaScriptMVC. Основные причины:

  • На основе jQuery (поэтому каждый плагин jQuery, который вы найдете в Интернете, будет просто хорошо интегрирован)
  • Предоставляет способ организации вашего приложения по умолчанию (в соответствии с архитектурой плагина / mvc
  • Продвигает лучшие практики (тестирование и т.д.)
  • EJS как механизм создания шаблонов
  • Легко расширяемый
  • Чрезвычайно хорошо документировано
  • Встроенные инструменты повышения производительности для генерации кода, сжатия кода, управления зависимостями JS

Возможно, вы могли бы объединить его с jQuery mobile в соответствии с вашими потребностями.

Это может удовлетворить ваши потребности, поскольку:

  • Модульность: создавайте плагины / модули MVC для каждого модуля вашего приложения
  • Отложенная загрузка: Steal (встроенная система управления зависимостями) загружает ваши данные в зависимости от того, когда к ним обращаются
  • Сжатие: минимизирует ширину полосы за счет сжатия production.js файл с помощью компилятора закрытия Google.

Комментарии:

1. JavaScriptMVC — это огромный раздутый фреймворк. Я сомневаюсь, что вы можете позволить себе использовать его из-за ограничений мобильных устройств.

2. @Raynos Это хорошая платформа для быстрого начала работы (что было обязательным требованием, если я правильно понял вопрос). Позвоночник требует дополнительной настройки, например, включения require.js и т.д… Кроме того, вам не нужно включать весь материал JavaScriptMVC, а только то, что вам нужно. Но, конечно, никогда не пробовал это для мобильных устройств.

3. Одна только папка jQuery содержит 2 МБ исходного кода: это большой раздутый фреймворк, вы не можете позволить себе загружать его на мобильное устройство, вам нужно что-то легкое и гибкое.

4. Но это не то, что будет развернуто. У меня много материала в моем веб-приложении, действительно много, и я достигаю размера ~ 800 КБ в сжатом виде (включая CSS). Итак, в мобильном приложении я бы, вероятно, сократил около 50%, чтобы достичь примерно 400 КБ, если вообще достигну.

Ответ №2:

Модульный javascript включает в себя две вещи

  • Написание модульного кода
  • Загрузка модульного кода

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

Загрузка модульного кода требует использования загрузчика модулей. require.js как вы упомянули, популярно. или вы можете попробовать что-то более свежее, например, seajs.

Что касается других фреймворков, они вам на самом деле не нужны, но если вы не знаете, как создавать архитектуру JavaScript, то у меня возникнет соблазн сказать, что вам следует использовать zepto и spine.js .