Статьи

Выбор Ajax Framework

На прошлой неделе мы с коллегами исследовали Ajax Frameworks. Мы работаем над проектом, который следует принципам архитектуры в стиле SOFEA, и мы хотим создать лучшую платформу для наших нужд. Я пишу этот пост, чтобы увидеть 1) если вы, сообщество, согласны с нашим процессом отбора и 2) чтобы узнать о вашем опыте работы с основами, которые мы оцениваем. Ниже приведен процесс, которым мы следуем, чтобы сделать свой выбор.

  1. Выберите короткий список фреймворков для прототипирования.
  2. Создайте прототип приложения с каждым фреймворком.
  3. Документируйте результаты и создайте матрицу с важными критериями.
  4. Создать презентацию для подведения итогов документа.
  5. Доставить документ, презентацию (с демонстрациями) и рекомендации.

Для # 1 мы выбрали  Ext JSDojoYUI  и  GWT,  потому что мы считаем, что эти библиотеки Ajax предлагают большинство виджетов UI. Мы также рассмотрели Prototype / Scriptaculous, jQuery и MooTools, но решили отказаться от них из-за отсутствия виджетов UI.

Для # 2 мы поставили время на 3 дня разработки. В дополнение к базовой функциональности мы добавили несколько функций (например, редактирование по месту, перетаскивание, виджеты календаря, переходы, диаграммы, сетка), которые могут использоваться в производственном приложении. Мы все смогли выполнить большую часть функциональности приложения. Конечно, есть еще некоторая очистка кода, а также стили, чтобы каждое приложение выглядело хорошо для демонстрации. Хорошая вещь в этом состоит в том, что мы можем посмотреть код друг друга и увидеть, как то же самое делается в каждой среде. Никто из нас не является экспертом ни в одном из фреймворков, поэтому, возможно, мы могли бы сделать что-то лучше. Тем не менее, я думаю, что это хорошо, что мы все начали немного зеленеть, потому что это показывает, что возможно для кого-то относительно нового в рамках.

Для # 3 мы создаем документ со следующей схемой:

Introduction
Ajax Framework Candidates
(intro and explanation)

Project Information
(history)
(license / cost)
(number of committers)
(support options)
(mailing list traffic (nov/dec 2008))

Matrix and Notes
Conclusion  

Для матрицы, на которую есть ссылка в приведенном выше наброске, мы используем таблицу с весами и рангами:

Вес критерии школа дзюдо YUI GWT Ext JS Заметки
# Важные критерии для клиента 0..1 0..1 0..1 0..1 Заметки о рейтинге

Наша стратегия заполнения этой матрицы:

  • Клиент корректирует вес для каждого критерия (при необходимости удаляя / добавляя), поэтому все веса в сумме равны 1.
  • Мы присваиваем каждому каркасу 0, .5 или 1, где 0 = не удовлетворяет критериям, .5 = частично удовлетворяет, 1 = удовлетворяет.

Список критериев, предоставленных нам нашим клиентом, выглядит следующим образом (без определенного порядка).

  • Качество документации / Уроки / Самопомощь
  • Поддержка браузеров (наиболее важные браузеры / версии, основанные на веб-статистике)
  • Тестируемость (особенно совместимость с Selenium)
  • Лицензирование
  • Проект здоровья / принятия
  • Производительность
  • Масштабируемость
  • Гибкость / расширяемость
  • Производительность (app dev, web dev)
  • Богатство библиотеки виджетов / компонентов
  • Возможность построения графиков
  • Возможность создавать новые виджеты
  • Соответствует существующему набору навыков команды Java
  • Простота развертывания (на Ops, QA, Пользователи)
  • Степень риска в целом
  • Возможность интеграции с существующим сайтом (который включает в себя Prototype)
  • Легко стилизовать с помощью CSS
  • Проверка (особенно недопустимые элементы маркировки)
  • Компонент Тематика / Украшение
  • Доступность CDN (то есть Google Ajax Libraries API или Ext CDN)

Что вы думаете? Как можно улучшить этот процесс? Конечно, если у вас есть базовые ответы (0, .5 или 1) для нашей матрицы, мы будем рады услышать ваше мнение.