Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XC Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 08 июня 2020 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Исламов А.Р. ВЫБОР PYTHON ФРЕЙМВОРКА ДЛЯ РАЗРАБОТКИ ВЕБ-ПРИЛОЖЕНИЙ РЕАЛЬНОГО ВРЕМЕНИ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. XC междунар. студ. науч.-практ. конф. № 6(89). URL: https://sibac.info/archive/technic/6(89).pdf (дата обращения: 27.04.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

ВЫБОР PYTHON ФРЕЙМВОРКА ДЛЯ РАЗРАБОТКИ ВЕБ-ПРИЛОЖЕНИЙ РЕАЛЬНОГО ВРЕМЕНИ

Исламов Азат Рифатович

студент, кафедра компьютерных систем, Казанский национальный исследовательский технический университет имени А.Н. Туполева-КАИ,

РФ, г. Казань

Гибадуллин Руслан Фаршатович

научный руководитель,

канд. техн. наук, доц. кафедры компьютерных систем, Казанский национальный исследовательский технический университет имени А.Н. Туполева-КАИ,

РФ, г. Казань

SELECTING A PLATFORM FOR DEVELOPING A WEB APPLICATIONS

 

Azat Islamov

student, Department of Computer Systems, Kazan national research technical university Named after A.N. Tupolev - KAI,

Russia, Kazan

Ruslan Gibadullin

scientific adviser, PhD, associate professor at the Department of Computer Systems, Kazan national research technical university Named after A.N. Tupolev - KAI, Russia, Kazan

 

АННОТАЦИЯ

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

ABSTRACT

Real-time web applications are universal cross-platform applications in which information is delivered to users as quickly as possible. They are used in cases where the information received by users should be relevant. Based on this, the most urgent problem in the development of real-time web applications is the choice of technology for development, namely, a programming language and web framework. In this paper, we substantiate the choice of the aiohttp framework for the Python programming language.

 

Ключевые слова: веб-приложение, Фреймворк, aiohttp, Python.

Keywords: web application, Framework, aiohttp, Python.

 

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

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

В качестве языка программирования для разработки веб-приложений реального времени выберем Python, который является наиболее подходящим инструментом для реализации концепции RAD (Rapid Application Development – «быстрая разработка приложений»). Данная концепция организации процесса разработки ориентирована на максимально быстрое получение качественного результата в условиях ограничений по срокам и бюджету и обеспечивает совмещение высокого качества разрабатываемого продукта, высокой скорости разработки и низкой стоимости реализации. Более того, Python является одним из самых востребованных языков в веб-разработке [1].

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

Python имеет множество фреймворков, но не все они подходят для разработки веб-приложений реального времени. Проведенные тесты производительности показали, что наиболее популярный Python фреймворк Django не демонстрирует высокую скорость работы. В тестах на количество запросов в секунду (Рисунок 1) [2] и времени, затраченное на загрузку данных из базы данных при помощи ORM и рендеринг шаблона (Рисунок 2) [3], наилучшие результаты показывает асинхронный фреймворк aiohttp.

Асинхронный Python фреймворк aiohttp позволяет легко реализовать асинхронные веб-приложения реального времени. Асинхронный код, написанный на данной платформе, почти не отличается от синхронного, что, увеличивает скорость и качество разработки. Структура проектов, основанных на aiohttp, похожа на структуру большинства других веб-проектов на основе языка программирования Python. Встроенная поддержка протокола двусторонний протокол связи WebSocket позволяет не подключать стороннюю библиотеку, а реализация данного протокола проста в использовании. Библиотека, помимо серверного, предоставляет клиентский функционал. Она построена на Python asyncio событийном цикле, что делает ее отличным выбором для веб-приложений с долгоживущими подключениями, например веб-чатов. Сообщество aiohttp предлагает разработчикам большое количество сторонних библиотек, облегчающие разработку веб-приложений. Например, асинхронные драйвера для различных СУБД; библиотеки для работы с клиентскими сессиями; библиотеки для отладки и тестирования; шаблонизаторы и другие.

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

 

Рисунок 1. Запросов в секунду (чем больше, тем лучше)

 

Рисунок 2. Время, затраченное на загрузку данных из базы данных при помощи ORM и рендеринг шаблона (чем меньше, тем лучше)

 

Список литературы:

  1. Самые популярные языки программирования на GitHub // GitHub [электронный ресурс] – Режим доступа. – URL: https://github.blog/2018-11-15-state-of-the-octoverse-top-programming-languages/ (Дата обращения 20.05.2020).
  2. Самые быстрые Python фреймворки // Start Matter Blog [Электронный ресурс] – Режим доступа. –– URL: https://blog.startmatter.com/top-fast-python-web-frameworks-in-2019/ (Дата обращения 20.05.2020).
  3. Тесты производительности Python фреймворков // klen.github.io [Электронный ресурс] – Режим доступа. – URL: http://klen.github.io/py-frameworks-bench/ (Дата обращения 20.05.2020).
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

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