Я пытаюсь понять ландшафт различных подходов и лучших практик, связанных с разработкой сложного клиентского JavaScript.
Я не уверен, что маркировать этот класс приложений, возможно тяжелый AJAX или RIA (но не плагины, такие как Flash / Silverlight). Я имею в виду веб-приложения со следующими характеристиками:
- Эмулируйте богатый / собственный рабочий стол UX в JavaScript
- Содержит большинство / все поведение в JS на стороне клиента, используя сервер в качестве API данных (JSON / Html-Templates).
Это в отличие от использования веб-сервера для рендеринга пользовательского интерфейса, производящего весь HTML в модели обновления страницы.
Вот некоторые примеры:
- Документы Google / Gmail
- MindMeister
- Pivotal Tracker
По мере продвижения к HTML5 я вижу, что этот стиль разработки RIA с тяжелым JavaScript становится все более распространенным и необходимым для конкуренции.
ВОПРОС: Итак, каковы общие подходы к управлению этими тяжелыми разработками JS?
Код на стороне клиента, поскольку приложение растет в функциях, является чертовски сложным. Есть проблемы с масштабированием усилий по разработке между несколькими командами с использованием чистого JS (или, как я слышал, и я вполне могу в это поверить).
Google подошел к этой проблеме, создав GWT, который компилируется из языка более высокого уровня (Java) в JS, опираясь на существующую инфраструктуру разработки, которая есть в языке более высокого уровня (Eclipse, инструменты строгой типизации, инструменты рефакторинга), наряду с абстрагированием совместимости браузера и другие вопросы от разработчика.
Есть и другие инструменты, такие как Script # для C #, которые делают нечто подобное. Все это ставит JS больше в роли IL (Intermediate Language). то есть. «Ты никогда больше не пишешь на этом« низкоуровневом языке »».
Но эта «компиляция в JS» - не единственный подход. Не очевидно, что GWT является доминирующим подходом ... или действительно станет им.
Что люди делают с JavaScript для богатых клиентов? Некоторые ориентировочные вопросы:
- Большинство магазинов изготавливают JS вручную (поверх библиотек, таких как jQuery и др.)?
- Или существует много разных подходов, но нет четкой передовой практики?
- Неужели большинство магазинов избегают разработки в масштабе RIA в пользу более простой для разработчика модели на стороне сервера / перерисовки страницы? Если так, это будет продолжаться?
- Может ли компиляция в JS стать будущей тенденцией? Или это просто неправильно?
- Как они управляют сложностью и рефакторингом клиентского JS?
- Модуляризация и распределение работы между командами?
- Применение, применение и тестирование шаблонов на стороне клиента, таких как MVC / MVP и т. Д.
Итак, каковы новые тенденции в нашем будущем с тяжелыми JavaScript и HTML5?
Благодарность!