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