На прошлой неделе мы с коллегами исследовали Ajax Frameworks. Мы работаем над проектом, который следует принципам архитектуры в стиле SOFEA, и мы хотим создать лучшую платформу для наших нужд. Я пишу этот пост, чтобы увидеть 1) если вы, сообщество, согласны с нашим процессом отбора и 2) чтобы узнать о вашем опыте работы с основами, которые мы оцениваем. Ниже приведен процесс, которым мы следуем, чтобы сделать свой выбор.
- Выберите короткий список фреймворков для прототипирования.
- Создайте прототип приложения с каждым фреймворком.
- Документируйте результаты и создайте матрицу с важными критериями.
- Создать презентацию для подведения итогов документа.
- Доставить документ, презентацию (с демонстрациями) и рекомендации.
Для # 1 мы выбрали Ext JS , Dojo , YUI и 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) для нашей матрицы, мы будем рады услышать ваше мнение.