Фреймворк – что это такое, как работает, особенности

Программирование

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

Что такое framework, простыми словами на примерах

Допустим, вы пишете программу на Python. Пускай это будет игра, в которой необходимо отрисовать кнопку, по нажатию которой будет выполняться определенные действия.

Самый простой, но не самый легкий путь — сделать это с помощью векторной графики. То есть нарисовать линии, прямоугольники, залить их пикселями определенного цвета. Естественно это потребует времени, да и высока вероятность совершить ошибку.

Однако можно написать в ходе нечто вроде «button_add = Button(axes_button_add, ‘Добавить’)», и в окне появится кнопка.

Для этого и необходим framework.

При необходимости добавить параметров управления размерами, цветом, реакции на нажатие. Правда, перед этим потребуется импортировать ее через библиотеку pylab командой «import pylab».

Фреймворк – что это такое, как работает, особенности
Набор стандартных и пользовательских библиотек в Python не ограничен

Откуда появилась кнопка? Просто какой-то программист чуть раньше создал библиотеку pylab, в которую зашил функцию «Button».

Теперь каждый желающий может вызвать ее через команду «import», и быстро получить нужный результат. Это достаточно грубое объяснение, но из него понятен принцип использования библиотек и фреймворков.

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

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

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

Фреймворк – что это такое, как работает, особенности
Список самых популярных библиотек на JavaScript по версии merehead.com

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

Самый яркий пример — все понимают, что «колесо» и «шина» — это разные вещи, но предпочитают не сильно усложнять себе жизнь уточнением терминов.

Где применяются фреймворки, использование в веб

Фреймворки плохо подходят для решения бизнес-задач, вычисления Big Data, написания приложений.

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

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

Любой интернет-ресурс работает на принципе взаимодействие трех компонентов:

  • компьютер пользователя;
  • серверное хранилище самого сайта;
  • DNS сервер как связующее звено между ними.
Фреймворк – что это такое, как работает, особенности

Наглядное изображение принципа работы DNS сервера

В эту систему прекрасно вписывается технология программирования при помощи фреймворков.

Они значительно облегчают backend и frontend разработку. Наиболее популярные из них это Django и Flask для Python, React.js, Node.js и Angular для JavaScript, Spring Boot для Java.

С их помощью решают задачи по маршрутизации URL-адресов, взаимодействие с базами данных, авторизации запросов пользователей, поддержку сеансов. Значительно повышается безопасность и уровень защиты от хакерских атак.

Язык программирования и фреймворк: с чего начинать обучение

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

Конечно можно водить автомобиль, не зная принципов работы коробки передач и ДВС. Вот только стать профессионалом в этом случае будет невозможно. Но если стоит задача решить некоторые узкие задачи, такой подход окажется вполне оправдан.

Фреймворки для Python

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

Именно его используют Instagram, Mozilla, National Geographic, Pinterest. На официальном сайте проекта сообщается о следующих преимуществах:

  • быстрая реализация проектов;
  • способность работать в высоконагруженных системах;
  • повышенные требования к безопасности;
  • масштабируемость проектов;
  • универсальность применения.

Какой-нибудь простенький сайт даже новичок сможет создать в течение нескольких дней. Django без проблем прямо из коробки подключит аутентификацию пользователей, rss-каналы, динамический интерфейс администратора, карту сайта, API, и множество других функций.

Фреймворк – что это такое, как работает, особенности
Официальный логотип Джанго

Будет обеспечена защита от межсайтового скриптинга (XSS), подделки межсайтовых запросов (CSRF), SQL-инъекций, кликджекинга. подключение по протоколу HTTPS. Как правило Django используют для написания серверной части, здесь его функционал практически не знает равных.

Фреймворк – что это такое, как работает, особенности
Flask еще один достойный конкурент Django

Еще один очень интересный фреймворк для Python называется TurboGears. Его уникальность заключается в том, что разработчики обещают за 20 минут научить создавать приложение для веб. Это действительно так, но есть один интересный нюанс. Если для вас слова «зависимости», «стек», «класс», «объект», «словарь» и «переменная» просто пустой звук, будет сложно освоиться в отведенное время.

JavaScript и ReactJS

Сейчас самым используемым фреймворком для создания веб-приложений является react.JS. Им пользуется порядка 40% разработчиков по данным ресурса statista.com. Самое примечательное, что с формальной точки зрения React как раз не является фреймворком, он библиотека в чистом виде. Но это не мешает ввести его в наш обзор.

Фреймворк – что это такое, как работает, особенности
ReactJS заслуженно занимает первое место в рейтинге

Дело в том, что ReactJS отлично справляется с созданием как внешнего интерфейса, так и серверной части. Разработчики выбирают его за гибкость, что само по себе является ключевым признаком библиотеки. Кроме этого, отмечают и другие преимущества:

  • обратная совместимость, каждая новая версия стабильно поддерживает все функции предыдущей;
  • легкость в освоении, любой разработчик JavaScript легко разберется в ReactJS;
  • техническое совершенство, созданные проекты работают стабильно на протяжении долгих лет;
  • удачная объектная модель документа, значительно повышающая скорость обработки данных;
  • возможность повторного использования одних и тех же компонентов в приложениях и между ними.

Netflix, Airbnb, Cloudflare, Dropbox, BBC, Flipboard, Reddit, Paypal и тысячи других сайтов были созданы с помощью ReactJS.

Набор функций jQuery

Поразительно, но вторая по популярности в JavaScript программа для веб-разработки тоже не является фреймворком в классическом понимании этого слова. Ее создатель Джон Резиг вообще характеризует свое детище как набор функций, на официальном сайте hjquery.com ее называют «маленькая библиотека JavaScript». Это полностью свободный проект, код которого выложен на github.com. При желании программист может исключить из этой сборки любой модуль, кроме «core» и «selector».

Фреймворк – что это такое, как работает, особенности
Скромный по оформлению сайт jquery.com пользуется популярностью у программистов

По сути jQuery является надстройкой над Node.js. Ее задача — манипуляция с HTML документами, обработка событий, анимация и фоновый обмен данными браузера с веб-сервером. Изначальная сборка полностью кроссплатформенная, работает с любыми браузерами и операционными системами.

ASP.NET Core от Microsoft на C#

Корпорация Microsoft не смогла обойти тему веб-программирования облачных приложений, для этого в 2000 году она выпустила собственную сборку .NET Framework. Ее функционал отлично справляется с созданием серверных приложений. С 2016 года в нем используется кроссплатформенной веб-разработки ASP.NET Core с открытым кодом, скачать его можно абсолютно бесплатно. И это получился действительно бескомпромиссный фреймворк, с жестко прописанными сценариями.

Фреймворк – что это такое, как работает, особенности
Microsoft серьезно подошла к делу, все документы по ASP.NET переведены на русский язык

Непосредственно на сайте Microsoft есть обширный сборник обучающих материалов и документации, с помощью которого «каждый желающий может в течение нескольких минут создать собственный проект на платформах ОС Windows, macOS и Linux». Здесь есть:

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

Несмотря на рекламные обещания, новичку будет сложно разобраться с принципами создания сайта или мобильного приложения через ASP.NET Core. В его основе лежит код на C#, не самом простом языки программирования.

Особенности фреймворков

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

Конечно, в каждом учебном пособии найдется пошаговая инструкция. С ее помощью можно запустить простейший сайт. Но как только появится необходимость сделать что-то свое, придется изучать новую информацию о сетевых протоколах, front-end и back-end разработке.

Фреймворк – что это такое, как работает, особенности
Дорожная карта обучения бэкэнд-разработчика не ограничивается парой фреймворков

Но не зря первую строчку в рейтинге statista.com и самым часто используемым оказался ReactJS, в котором предусмотрен библиотечный подход к программированию. Отсутствие жесткого сценария, чем грешит ASP.NET.Core, значительно увеличивает гибкость использования фреймворка. Если вы более-менее опытный программист, то работа через фреймворки радикально облегчит решение типовых задач. И вряд ли человек со стажем будет спрашивать, зачем нужен фреймворк.

Окончательный выбор зависит исключительно от личных предпочтений, навыков и правил работы компании. Если вы привыкли работать на JavaScript, гораздо логичнее разобраться в Спринг, ReactJS и jQuery. Если есть навыки программирования на Пайтон, то не найдется альтернативы для Джанго. Си Шарп аналогичным образом связан с ASP.NET. Для каждого найдется инструмент, подходящий именно под него.

Айтистанция
Добавить комментарий

Мы используем файлы cookie на нашем сайте

OK