Что такое фреймворк
Что такое фреймворк
Фреймворк (англ. framework — «каркас, структура») — готовый набор инструментов, который помогает разработчику быстро создать продукт: сайт, приложение, интернет-магазин, CMS-систему.
Представьте, что вы решили собрать игрушечную машину: она должна ездить, управляться и выглядеть почти как настоящая. Очевидно, что есть несколько способов решить эту задачу:
— Машину можно собрать самостоятельно, с нуля: создать все детали вручную или на станке, заняться электроникой и электрикой, всё покрасить. Так можно контролировать весь процесс, но времени уйдёт немало.
— Похожую машину можно собрать из готовых наборов: детали корпуса, двигатель, электроника станут модулями, которые важно правильно подобрать и соединить. При желании можно залезть руками в любой модуль, но это необязательно, всё будет работать прямо «из коробки».
Фреймворк — такой же готовый набор, только для разработчика. Он экономит время и силы специалиста, которые ушли бы на создание базовых вещей и исправление простых ошибок.
Покажите на примере!
Запросто! Разберём Spring — универсальный фреймворк для Java-платформы. Если мы не используем этот фреймворк, а пишем все функции кодом, то нам потребуется:
1. Сделать импорт пакетов.
2. Настроить и открыть соединение.
3. Выполнить запрос.
4. Извлечь данные из набора результатов.
5. Закрыть ресурсы и соединение базы данных.
Получается куча кода на одну простую операцию. Если использовать Spring, всё это можно заменить тремя строчками:
Зачем нужны фреймворки
Ускорить разработку. При использовании фреймворка программисту не нужно писать много кода с нуля. Он берёт готовый набор инструментов и подстраивает их под свой проект.
Если не использовать фреймворки, потребуется самостоятельно придумывать, как отобразить данные на экране, как и где их хранить, как получать. Это может занять много времени.
Предотвратить ошибки. Благодаря фреймворкам разработчик может избежать распространённых ошибок — как архитектурных, так и функциональных.
Работа фреймворков уже отлажена, разработчики регулярно поддерживают их, дополняют примерами использования и решения проблем. Например, исходники многих фреймворков можно найти на GitHub. Даже если вы столкнётесь с ошибкой, можно зайти туда и узнать у коллег, как её исправить.
Упростить адаптацию новых разработчиков в команде. Если программист освоил один или несколько фреймворков, он быстро разберётся в любом проекте, который создан на их базе.
Чем фреймворки отличаются от библиотек
Библиотека — набор методов, который упрощает труд разработчика. Как правило, библиотеки отвечают только за одну область: например, хранение данных или рендеринг — их вывод на страницу.
Библиотеки никак не влияют на архитектуру проекта. Фреймворки же как раз задают архитектуру и содержат инструменты из разных областей, таких как рендеринг, работа с базами данных, обработка запросов.
Фреймворки могут содержать в себе библиотеки. Например, фреймворк Next.js содержит библиотеку React.
Фреймворки и библиотеки нужны, чтобы упростить разработчику какую-то задачу.
Библиотеки — полностью контролируемая разработчиком история. Используя библиотеку, вы сами выбираете, когда код внутри неё запустится. То есть вы идёте по коду: библиотека запускается, отрабатывает, и возвращает вам управление. Фреймворк же живёт своей жизнью, он запускается и обрабатывает ваш код самостоятельно.
Сергей Бердышев, лид-архитектор банковских систем
Какие бывают типы фреймворков
Фреймворки делятся по типам задач. Это надстройки к языкам программирования, то есть у каждого языка свой фреймворк.
Фронтенд-фреймворки. Отвечают только за видимую часть сайта или приложения: отрисовку интерфейса, постраничную навигацию.
Популярные фронтенд-фреймворки:
1. Angular.
2. Next.js.
3. Vue.js.
Бэкенд-фреймворки. Отвечают за внутреннюю (серверную) часть сайтов и приложений: хранение, обработку и анализ данных.
Популярные бэкенд-фреймворки:
1. Django, Flask — для Python.
2. Laravel — для PHP.
3. Spring — для Java.
4. Ruby on Rails — для Ruby.
5. Asp.NET — для C#.
Фулстек-фреймворки. Отвечают одновременно за внешнюю и внутреннюю часть работы сайтов и приложений.
Популярные фулстек-фреймворки:
1. Meteor.js — для JavaScript.
2. Kivy — для Python.
3. Xamarin — для C#.
Как выбрать фреймворк
Распространённость фреймворка. Почему важно выбирать из популярных фреймворков:
— Есть большое сообщество — легко найти решение любой проблемы.
— У фреймворка хорошая поддержка — значит, багов будет минимум.
— Легко найти работу, так как большинство компаний использует популярные фреймворки.
Можно сравнить фреймворки Micronaut и Spring. Spring популярнее, чем Micronaut. У него огромный набор инструментов. Например, если вы работаете с базой данных SQL, а потом хотите добавить Mongo, на Spring вы можете это сделать. Если работаете на Micronaut с одним инструментом, а потом захотите переключиться на другой, этот фреймворк может другой инструмент не поддерживать. Тогда остаётся только переписать всё приложение на новый фреймворк.
Компании всегда выбирают популярные фреймворки. С ними проекты проще поддерживать: есть знающие специалисты, обратная связь, широкий набор функций.
Сергей Бердышев, лид-архитектор банковских систем
Возможность для развития. Гибкость вашего приложения и возможность развивать его в будущем, добавлять новые фичи сильно зависит от функциональности фреймворка, который вы используете. Популярный фреймворк позволит вам дорабатывать приложение как угодно, использовать разные инструменты.
Поставленные задачи. Сравните набор инструментов у разных фреймворков: какой из них лучше закроет ваши потребности. Для этого изучайте документацию, найти её можно на официальном сайте фреймворка. Для создания проекта со сложным интерфейсом, например онлайн-банка, скорее подойдёт Angular, так как в него входит большой набор инструментов. Для разработки небольшого пет-проекта — Vue.js.
⌘ ⌘ ⌘
Часто не сотрудник выбирает фреймворк, а команда подбирает коллегу исходя из того, насколько хорошо он владеет принятым фреймворком. Если вы идёте работать фронтендером и предпочитаете Angular, то сами не выберете ребят, которые пишут на Vue.