Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

О фреймворках / Роман Ивлиев (Банки.ру)

244 views

Published on

Поговорим о неотъемлемой составляющей большого числа современных веб-проектов — о фреймворках.

Рассмотрим следующие темы и поищем ответы на вопросы:
1) Что такое фреймворк, и зачем их пишут.
2) Почему для некоторых языков их десятки, а для некоторых — единицы.
3) В чём плюсы и минусы применения.
4) Наиболее распространённые мифы.
5) Использовать или нет — примеры из жизни.
6) Как выбрать из множества доступных вариантов, на что стоит обратить внимание.

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

О фреймворках / Роман Ивлиев (Банки.ру)

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

×