О фреймворках / Роман Ивлиев (Банки.ру)
TRANSCRIPT
О фреймворках Роман Ивлиев, CIO, Банки.ру
• Тестировщик
• Разработчик
• Руководитель разработчиков
• Руководитель тестировщиков
• Руководитель проектов
• CTO
• CIO
С 2002 года до сих пор
О чем мы с вами поговорим
• Фреймворки…, и зачем их пишут?
• Почему их так много?
• Плюсы и минусы применения.
• Наиболее распространённые мифы.
• На что стоит обратить внимание при выборе.
Зачем пишут фреймворки?
Почему их десятки?
Зачем же их пишут?
Зачем же их пишут?
• Удобство разработки;
• Ускорение разработки;
• Сокращение рутины и затрат;
• Стандартизация и структуризация;
Зачем же их пишут?
• Удобство разработки;
• Ускорение разработки;
• Сокращение рутины и затрат;
• Стандартизация и структуризация;
• Тот, что есть – плохой;
Зачем же их пишут?
• Удобство разработки;
• Ускорение разработки;
• Сокращение рутины и затрат;
• Стандартизация и структуризация;
• Тот, что есть – плохой;
• А кто из вас не начинал писать свой?
Плюсы и минусы применения
Не все решения полезны
Плюсы
• Типовые задачи уже решены;
• Есть шансы укорить разработку;
• Есть шансы делать одинаково;
• Есть шансы быстрее находить людей;
Плюсы
• Типовые задачи уже решены;
• Есть шансы укорить разработку;
• Есть шансы делать одинаково;
• Есть шансы быстрее находить людей;
• Разрабатывают профессионалы.
Минусы
• Сложность оптимизации;
• Сделаны не всегда удачно;
• Сокрытие элементов реализации;
• Надо переучиваться при замене;
Минусы
• Сложность оптимизации;
• Сделаны не всегда удачно;
• Сокрытие элементов реализации;
• Надо переучиваться при замене;
• Вы на «крючке».
Мифы о фреймворках
Наиболее часто встречающиеся
Фреймворк == безопасность
• Открытый код;
• Обилие сторонних разработок;
• Публичные анонсы патчей;
Фреймворк == безопасность
• Открытый код;
• Обилие сторонних разработок;
• Публичные анонсы патчей;
• А много кто из вас тестирует безопасность?
Легко подменить инженера
• У вас популярный фреймворк?
• Ваш проект только начат?
• У вас есть CR и стандарт на разработку?
Легко подменить инженера
• У вас популярный фреймворк?
• Ваш проект только начат?
• У вас есть CR и стандарт на разработку?
• Без сноровки – овнокод
Скорость разработки
• Если нужно типовое решение;
• Если не волнует обратная совместимость;
• Если низкая текучка;
Скорость разработки
• Если нужно типовое решение;
• Если не волнует обратная совместимость;
• Если низкая текучка;
• Если есть специалисты.
Заказчику это нужно
• Зависит от проекта;
• Многие из них – жертвы моды;
• Часто собирают команду под проект;
Заказчику это нужно
• Зависит от проекта;
• Многие из них – жертвы моды;
• Часто собирают команду под решение;
• На самом деле нужно рабочее решение
Фреймворк плохой, потому что:
• не может что-то из коробки;
• если так уже умеет другой фреймворк;
• в нем сделать вот так нельзя;
Фреймворк плохой, потому что:
• не может что-то из коробки;
• если так уже умеет другой фреймворк;
• в нем сделать вот так нельзя;
• не нравится кому-то из сильных инженеров.
Выбираем фреймворк
На что стоит обратить внимание?
Комьюнити и ваши силы
• На сколько популярно решение?
• Как давно оно на рынке?
• Насколько интенсивно развитие и поддержка?
• Какой ваш личный опыт?
• Есть ли время на изучение?
• …
Процесс разработки
• А сколько лет будут поддерживать?
• Качество документации вас устраивает?
• На сколько автоматизирована разработка?
• Есть ли интеграции с стилевыми библиотеками?
• Есть ли другие интеграции?
• …
Функционал и Тестирование
• Из коробки можно начинать?
• Есть ли скелеты приложений?
• Есть ли интеграция с unit-фреймворками?
• На сколько прозрачен механизм тестирования?
• …
Возможности для расширения
• Есть ли библиотеки готовых компонент?
• Есть ли прозрачный процесс разработки расширений?
• А нет ли возможности собрать ваше приложение сразу?
• …
Производительность и отладка
• Легко ли отлаживать?
• Результаты бенчмарков удовлетворяют?
• Есть ли обратная совместимость?
• Есть ли солидные ресурсы на вашей технологии?
• …
Критериев может быть куда больше
• Удобство работы с данными;
• Кэширование;
• Удобство роутинга;
• Продолжать можно долго;
Критериев может быть куда больше
• Удобство работы с данными;
• Кэширование;
• Удобство роутинга;
• Продолжать можно долго;
• Ваш критерий может быть основным.
Заключение
Собираем камни
Шаги:
• Понять, какова ваша задача;
• Понять, каковы ваши возможности;
• Понять, каковы перспективы проекта;
• Составить список критериев для отбора;
Шаги:
• Понять, какова ваша задача;
• Понять, каковы ваши возможности;
• Понять, каковы перспективы проекта;
• Составить список критериев для отбора;
• Profit.
«Слова вы услышали, поиск пути за вами» Уильям Деминг