Что такое фреймворк

Современные сайты и веб приложения становятся все сложней и функциональнее, чтобы удовлетворить растущие требования пользователей и современных технологий. Этот факт приводит к тому, что разработка сайтов занимает все больше времени и требует все больше усилий от ИТ специалистов, а значит влияет и на стоимость создания сайтов.

Чтобы снизить цену и ускорить работу, веб разработчики, придумывают и создают всевозможные инструменты для ускорения и облегчения разработки сайтов или веб приложений. В зависимости от разных параметров эти инструменты называются библиотеки, фреймворки или системы управления контентом (CMS).

Википедия дает приблизительно следующее определение: фреймворк (framework) это инфраструктура программных решений, платформа, которая определяет структуру или каркас программной системы и облегчает ее разработку, определяя правила разработки и предоставляя необходимые инструменты.

Фреймворки, библиотеки и CMS

Начинающий веб разработчик может легко спутать понятие библиотеки и фреймворка, но это далеко не одно и тоже, хотя, возможно, в некоторых случаях грань может казаться размытой. Главное отличие фреймворка и библиотеки состоит в том, что библиотека не определяет структуру приложения, а лишь предоставляет набор кирпичиков для разработки.

CMS в какой-то мере тоже можно назвать фреймворками, но на более высоком уровне (высоком – не означает лучше). Они предназначены для решения более узких задач и накладывают более жесткие ограничение на разрабатываемый сайт. Но, с другой стороны, решает множество типичных задач для всех сайтов, например, работа с базой данных или организация структуры страниц.

Назначение фреймворков

Все фреймворки обладают общим назначением, они должны облегчать и ускорять разработку приложений. Они делают это в нескольких направлениях. Во-первых, фреймворки, как и библиотеки, предоставляют разработчикам набор готовых блоков для решения типичных и повторяющиеся задач. Во-вторых, они определяют структуру приложения, закладывая надежный фундамент для создания больших веб приложений.

Виды фреймворков

Существует огромное число фреймворков. Каждый язык программирования может похвастаться несколькими популярными и универсальными фреймворками и еще большим количеством малоизвестными и более узконаправленными.

Условно фреймворки можно разделить на три большие группы, в зависимости на какой стороне они используются: фронт-энд, бэк-энд и фуллстак.

Приведу несколько популярных фреймворков для языков программирования и технологий, без которых создание сайтов занимало бы больше времени, и цена за сайт была бы выше.

Приведенный список веб фреймворков, никак не претендует на законченность и не является каким-нибудь рейтингом. Это те, с которыми я работал или сталкивался в своей практике.

HTML/CSS фреймворки

Все фреймворки из этой категории, не совсем являются таковыми, они не подходят под определение с Википедии. Однако, их часто так называют.

Bootstrap

В мире вряд ли найдется веб дизайнер/разработчик, который хотя бы не слышал про Bootstrap. Это, возможно, наиболее популярный инструментарий, для быстрого создания адаптивных сайтов включающий в себя переменные и миксы SASS, очень развитую адаптивную сетку, готовые компоненты и плагины JavaScript. Доступен, также большой набор SVG иконок, спрайтов и шрифтов.

Bootstrap абсолютно бесплатен, но на официальном большой набор тем и шаблонов для сайтов, веб и мобильных приложений, которые предлагаются уже за небольшую плату.

Foundation

Создать адаптивный сайт, который будет правильно отображаться на десктопе и всех мобильных устройствах, используя этот фреймворк очень легко. Он хороша кастомизируется, содержит HTML-шаблоны, покрывающие большое количество вариантов использования, и включает мощную адаптивную CSS сетку.  

Отличительной чертой этого фреймворка является, возможность быстрого создания HTML имэйлов.

JavaScript фреймворки

Angular

Angular — это среда и платформа для проектирования и разработки сложных и больших одностраничных веб сайтов и приложений. Этим фреймворком сложней овладеть на начальных этапах, но дополнительные затраты времени на изучение, целиком и полностью окупаются, когда наступает потребность в создание большого нестандартного веб сайта.

Этот фреймворк, вместе с TypeScript, я регулярно использую для разработки сайтов, которые нельзя или очень сложно сделать на простом WordPress.

React

React разработала компания FaceBook и является очень популярным JavaScript инструментом для простого создания интерактивных сайтов. Достаточно описать, как части пользовательского интерфейса выглядят в разных состояниях, а React будет своевременно их обновлять, когда данные изменяться.

Vue

Vue это еще один популярный и прогрессивный фреймворк на JavaScript для создания пользовательских интерфейсов. Его отличительная особенность от других «братьев по цеху» состоит в том, что, Vue изначально бы разработан, чтобы его можно было внедрять по возрастающей. Его базовая библиотека сфокусирована только на шаблон представления, и ее легко интегрировать в существующий проект. Если использовать все возможности Vue, то он также отлично подойдет для сложных одностраничных сайтов с богатой функциональностью.

PHP фреймворки

Laravel

С backend фреймворками для PHP я наиболее часто сталкивался с Laravel. Это PHP фреймворк с богатой экосистемой и выразительным элегантным синтаксисом. Его использование для разработки веб сайтов позволяет не тратить время на повторяющиеся мелочи, а творить по-настоящему сложные и интересные вещи.

Заключение

Работа веб разработчика очень интересна и местами довольно сложная, сталкиваешься с многочисленными, и все новыми, инструментами и технологиями, которые порой, сложны в понимании и изучении. Список фреймворков для разработки сайтов я буду дополнять по мере знакомства с новыми.