ݺߣ

ݺߣShare a Scribd company logo
О фреймворках
Роман Ивлиев, CIO, Банки.ру
• Тестировщик
• Разработчик
• Руководитель разработчиков
• Руководитель тестировщиков
• Руководитель проектов
• CTO
• CIO
С 2002 года до сих пор
О чем мы с вами поговорим
• Фреймворки…, и зачем их пишут?
• Почему их так много?
• Плюсы и минусы применения.
• Наиболее распространённые мифы.
• На что стоит обратить внимание при выборе.
О фреймворках Backend conf 2016
Зачем пишут фреймворки?
Почему их десятки?
О фреймворках Backend conf 2016
Зачем же их пишут?
Зачем же их пишут?
• Удобство разработки;
• Ускорение разработки;
• Сокращение рутины и затрат;
• Стандартизация и структуризация;
Зачем же их пишут?
• Удобство разработки;
• Ускорение разработки;
• Сокращение рутины и затрат;
• Стандартизация и структуризация;
• Тот, что есть – плохой;
Зачем же их пишут?
• Удобство разработки;
• Ускорение разработки;
• Сокращение рутины и затрат;
• Стандартизация и структуризация;
• Тот, что есть – плохой;
• А кто из вас не начинал писать свой?
Плюсы и минусы применения
Не все решения полезны
Плюсы
• Типовые задачи уже решены;
• Есть шансы укорить разработку;
• Есть шансы делать одинаково;
• Есть шансы быстрее находить людей;
Плюсы
• Типовые задачи уже решены;
• Есть шансы укорить разработку;
• Есть шансы делать одинаково;
• Есть шансы быстрее находить людей;
• Разрабатывают профессионалы.
Минусы
• Сложность оптимизации;
• Сделаны не всегда удачно;
• Сокрытие элементов реализации;
• Надо переучиваться при замене;
Минусы
• Сложность оптимизации;
• Сделаны не всегда удачно;
• Сокрытие элементов реализации;
• Надо переучиваться при замене;
• Вы на «крючке».
Мифы о фреймворках
Наиболее часто встречающиеся
Фреймворк == безопасность
• Открытый код;
• Обилие сторонних разработок;
• Публичные анонсы патчей;
Фреймворк == безопасность
• Открытый код;
• Обилие сторонних разработок;
• Публичные анонсы патчей;
• А много кто из вас тестирует безопасность?
Легко подменить инженера
• У вас популярный фреймворк?
• Ваш проект только начат?
• У вас есть CR и стандарт на разработку?
Легко подменить инженера
• У вас популярный фреймворк?
• Ваш проект только начат?
• У вас есть CR и стандарт на разработку?
• Без сноровки – овнокод
Скорость разработки
• Если нужно типовое решение;
• Если не волнует обратная совместимость;
• Если низкая текучка;
Скорость разработки
• Если нужно типовое решение;
• Если не волнует обратная совместимость;
• Если низкая текучка;
• Если есть специалисты.
Заказчику это нужно
• Зависит от проекта;
• Многие из них – жертвы моды;
• Часто собирают команду под проект;
Заказчику это нужно
• Зависит от проекта;
• Многие из них – жертвы моды;
• Часто собирают команду под решение;
• На самом деле нужно рабочее решение
Фреймворк плохой, потому что:
• не может что-то из коробки;
• если так уже умеет другой фреймворк;
• в нем сделать вот так нельзя;
Фреймворк плохой, потому что:
• не может что-то из коробки;
• если так уже умеет другой фреймворк;
• в нем сделать вот так нельзя;
• не нравится кому-то из сильных инженеров.
Выбираем фреймворк
На что стоит обратить внимание?
Комьюнити и ваши силы
• На сколько популярно решение?
• Как давно оно на рынке?
• Насколько интенсивно развитие и поддержка?
• Какой ваш личный опыт?
• Есть ли время на изучение?
• …
Процесс разработки
• А сколько лет будут поддерживать?
• Качество документации вас устраивает?
• На сколько автоматизирована разработка?
• Есть ли интеграции с стилевыми библиотеками?
• Есть ли другие интеграции?
• …
Функционал и Тестирование
• Из коробки можно начинать?
• Есть ли скелеты приложений?
• Есть ли интеграция с unit-фреймворками?
• На сколько прозрачен механизм тестирования?
• …
Возможности для расширения
• Есть ли библиотеки готовых компонент?
• Есть ли прозрачный процесс разработки расширений?
• А нет ли возможности собрать ваше приложение
сразу?
• …
Производительность и отладка
• Легко ли отлаживать?
• Результаты бенчмарков удовлетворяют?
• Есть ли обратная совместимость?
• Есть ли солидные ресурсы на вашей технологии?
• …
Критериев может быть куда больше
• Удобство работы с данными;
• Кэширование;
• Удобство роутинга;
• Продолжать можно долго;
Критериев может быть куда больше
• Удобство работы с данными;
• Кэширование;
• Удобство роутинга;
• Продолжать можно долго;
• Ваш критерий может быть основным.
Заключение
Собираем камни
О фреймворках Backend conf 2016
О фреймворках Backend conf 2016
Шаги:
• Понять, какова ваша задача;
• Понять, каковы ваши возможности;
• Понять, каковы перспективы проекта;
• Составить список критериев для отбора;
Шаги:
• Понять, какова ваша задача;
• Понять, каковы ваши возможности;
• Понять, каковы перспективы проекта;
• Составить список критериев для отбора;
• Profit.
«Слова вы услышали, поиск пути за вами»
Уильям Деминг
С удовольствием отвечу на Ваши вопросы
@dumtest
roman@ivliev.info
roman.ivliyev

More Related Content

О фреймворках Backend conf 2016

  • 2. • Тестировщик • Разработчик • Руководитель разработчиков • Руководитель тестировщиков • Руководитель проектов • CTO • CIO С 2002 года до сих пор
  • 3. О чем мы с вами поговорим • Фреймворки…, и зачем их пишут? • Почему их так много? • Плюсы и минусы применения. • Наиболее распространённые мифы. • На что стоит обратить внимание при выборе.
  • 7. Зачем же их пишут?
  • 8. Зачем же их пишут? • Удобство разработки; • Ускорение разработки; • Сокращение рутины и затрат; • Стандартизация и структуризация;
  • 9. Зачем же их пишут? • Удобство разработки; • Ускорение разработки; • Сокращение рутины и затрат; • Стандартизация и структуризация; • Тот, что есть – плохой;
  • 10. Зачем же их пишут? • Удобство разработки; • Ускорение разработки; • Сокращение рутины и затрат; • Стандартизация и структуризация; • Тот, что есть – плохой; • А кто из вас не начинал писать свой?
  • 11. Плюсы и минусы применения Не все решения полезны
  • 12. Плюсы • Типовые задачи уже решены; • Есть шансы укорить разработку; • Есть шансы делать одинаково; • Есть шансы быстрее находить людей;
  • 13. Плюсы • Типовые задачи уже решены; • Есть шансы укорить разработку; • Есть шансы делать одинаково; • Есть шансы быстрее находить людей; • Разрабатывают профессионалы.
  • 14. Минусы • Сложность оптимизации; • Сделаны не всегда удачно; • Сокрытие элементов реализации; • Надо переучиваться при замене;
  • 15. Минусы • Сложность оптимизации; • Сделаны не всегда удачно; • Сокрытие элементов реализации; • Надо переучиваться при замене; • Вы на «крючке».
  • 16. Мифы о фреймворках Наиболее часто встречающиеся
  • 17. Фреймворк == безопасность • Открытый код; • Обилие сторонних разработок; • Публичные анонсы патчей;
  • 18. Фреймворк == безопасность • Открытый код; • Обилие сторонних разработок; • Публичные анонсы патчей; • А много кто из вас тестирует безопасность?
  • 19. Легко подменить инженера • У вас популярный фреймворк? • Ваш проект только начат? • У вас есть CR и стандарт на разработку?
  • 20. Легко подменить инженера • У вас популярный фреймворк? • Ваш проект только начат? • У вас есть CR и стандарт на разработку? • Без сноровки – овнокод
  • 21. Скорость разработки • Если нужно типовое решение; • Если не волнует обратная совместимость; • Если низкая текучка;
  • 22. Скорость разработки • Если нужно типовое решение; • Если не волнует обратная совместимость; • Если низкая текучка; • Если есть специалисты.
  • 23. Заказчику это нужно • Зависит от проекта; • Многие из них – жертвы моды; • Часто собирают команду под проект;
  • 24. Заказчику это нужно • Зависит от проекта; • Многие из них – жертвы моды; • Часто собирают команду под решение; • На самом деле нужно рабочее решение
  • 25. Фреймворк плохой, потому что: • не может что-то из коробки; • если так уже умеет другой фреймворк; • в нем сделать вот так нельзя;
  • 26. Фреймворк плохой, потому что: • не может что-то из коробки; • если так уже умеет другой фреймворк; • в нем сделать вот так нельзя; • не нравится кому-то из сильных инженеров.
  • 27. Выбираем фреймворк На что стоит обратить внимание?
  • 28. Комьюнити и ваши силы • На сколько популярно решение? • Как давно оно на рынке? • Насколько интенсивно развитие и поддержка? • Какой ваш личный опыт? • Есть ли время на изучение? • …
  • 29. Процесс разработки • А сколько лет будут поддерживать? • Качество документации вас устраивает? • На сколько автоматизирована разработка? • Есть ли интеграции с стилевыми библиотеками? • Есть ли другие интеграции? • …
  • 30. Функционал и Тестирование • Из коробки можно начинать? • Есть ли скелеты приложений? • Есть ли интеграция с unit-фреймворками? • На сколько прозрачен механизм тестирования? • …
  • 31. Возможности для расширения • Есть ли библиотеки готовых компонент? • Есть ли прозрачный процесс разработки расширений? • А нет ли возможности собрать ваше приложение сразу? • …
  • 32. Производительность и отладка • Легко ли отлаживать? • Результаты бенчмарков удовлетворяют? • Есть ли обратная совместимость? • Есть ли солидные ресурсы на вашей технологии? • …
  • 33. Критериев может быть куда больше • Удобство работы с данными; • Кэширование; • Удобство роутинга; • Продолжать можно долго;
  • 34. Критериев может быть куда больше • Удобство работы с данными; • Кэширование; • Удобство роутинга; • Продолжать можно долго; • Ваш критерий может быть основным.
  • 38. Шаги: • Понять, какова ваша задача; • Понять, каковы ваши возможности; • Понять, каковы перспективы проекта; • Составить список критериев для отбора;
  • 39. Шаги: • Понять, какова ваша задача; • Понять, каковы ваши возможности; • Понять, каковы перспективы проекта; • Составить список критериев для отбора; • Profit.
  • 40. «Слова вы услышали, поиск пути за вами» Уильям Деминг
  • 41. С удовольствием отвечу на Ваши вопросы @dumtest roman@ivliev.info roman.ivliyev