Научная статья на тему 'СРАВНИТЕЛЬНЫЙ АНАЛИЗ СОВРЕМЕННЫХ ВЕБ-ФРЕЙМВОРКОВ ДЛЯ РАЗРАБОТКИ ПРИЛОЖЕНИЙ'

СРАВНИТЕЛЬНЫЙ АНАЛИЗ СОВРЕМЕННЫХ ВЕБ-ФРЕЙМВОРКОВ ДЛЯ РАЗРАБОТКИ ПРИЛОЖЕНИЙ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
473
70
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЕБ-ПРИЛОЖЕНИЕ / ASP .NET CORE / LARAVEL / SPRING / RUBY IN RAILS / DJANGO / WEB APPLICATION

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Даньшин К. А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

COMPARATIVE ANALYSIS OF MODERN WEB FRAMEWORKS FOR DEVELOPING APPLICATIONS

The article is devoted to reviewing popular web frameworks, comparing their performance and recommendations for choosing one or another framework in the project.

Текст научной работы на тему «СРАВНИТЕЛЬНЫЙ АНАЛИЗ СОВРЕМЕННЫХ ВЕБ-ФРЕЙМВОРКОВ ДЛЯ РАЗРАБОТКИ ПРИЛОЖЕНИЙ»

Даньшин К.А. студент магистратуры 2 курса отдел аспирантуры и магистратуры (Программная инженерия)

Поволжский Государственный Университет Телекоммуникаций и Информатики

Россия, г. Самара СРАВНИТЕЛЬНЫЙ АНАЛИЗ СОВРЕМЕННЫХ ВЕБ-ФРЕЙМВОРКОВ ДЛЯ РАЗРАБОТКИ ПРИЛОЖЕНИЙ

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

Ключевые слова: веб-приложение, ASP .NET Core, Laravel, Spring, Ruby in Rails, Django.

Danshin K.A. candidate for a master's degree

2nd year, Department of Graduate and Magistracy (Software engineering) Volga State University of Telecommunications and Informatics

Russia, Samara

COMPARATIVE ANALYSIS OF MODERN WEB FRAMEWORKS FOR DEVELOPING APPLICATIONS

Abstract: the article is devoted to reviewing popular web frameworks, comparing their performance and recommendations for choosing one or another framework in the project.

Keywords: web application, ASP .NET Core, Laravel, Spring, Ruby in Rails, Django.

Laravel

Laravel — это бесплатный опенсорсный PHP фреймворк для разработки веб-приложений по паттерну MVC.

Он был создан как альтернатива фреймворку Codeigniter, в котором было мало полезных функций для разработки веб-приложений. Laravel базируется на другом фреймворке - Symfony.

Плюсы:

• Достаточно неплохая и понятная документация.

• Большое комьюнити и экосистема.

• Гибкий роутинг.

• Удобный механизм обработки ошибок и исключений.

• Механизмы аутентификации и авторизации пользователей идут «из коробки».

• Хеширование с помощью Memcached и Redis и файловое кэширование.

Минусы:

• Документация на английском языке.

• Отсутствует обратная совместимость между версиями фреймворка.

• Не логичное расположение каталогов и файлов. Ruby on Rails

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

Ruby on Rails — фреймворк, написанный на языке программирования

Ruby.

Плюсы:

• Объектно-ориентированное программирование.

• Активное комьюнити.

• Удобный синтаксис.

• Поддержка гемов.

• Поддержка QC++ кода. Минусы:

• Сложность в изучении.

• Мало документации на русском языке.

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

• Относительно медленно развивается и разрабатывается. Django

Django — свободный фреймворк для веб-приложений на языке Python, использующий шаблон проектирования MVC. Плюсы:

• Простота в изучении.

• Чистота и читаемость.

• Разносторонность.

• Быстрота написания.

• Цельный дизайн.

• Безопасность.

• Полная комплектация.

• Масштабируемость. Минусы:

• Использование шаблона маршрутизации с указанием URL.

• Монолитность.

• Все базируется на ORM Django.

• Компоненты развертываются совместно.

• Для разработки необходимо знать об всех зависимостях проекта и что делает тот или иной участок кода.

Java Spring

Spring Framework, или просто Spring — один из самых популярных фреймворков для создания веб-приложений на Java. Использует паттерн MVC.

Плюсы:

• Имеет модульную структуру.

• Возможность использовать не только в вебе.

• Поддержка ЯП Kotlin.

• Поддержка С/С++ кода.

• Слабая связанность.

• Упрощение инициализации и настройки компонентов.

• Упрощение модульного тестирования.

• Упрощение разработки и поддержки приложения в целом. Минусы:

• Конфигурация в XML.

• Импортирование других Spring-файлов.

• Сложность обучения. ASP .NET Core 2

ASP.NET Core является кроссплатформенной,

высокопроизводительной средой с открытым исходным кодом для создания современных облачных приложений, подключенных к Интернету. ASP.NET Core позволяет выполнять следующие задачи:

• Создавать веб-приложения и службы, приложения IoT и серверные части для мобильных приложений.

• Использовать избранные средства разработки в Windows, macOS и

Linux.

• Выполнять развертывания в облаке или локальной среде.

• Работать в .NET Core или .NET Framework. Плюсы:

• Удобство использования.

• Кроссплатформенность.

• Масштабируемость.

• Поддержка С/С++ кода.

• Слабая связанность.

• Надежность.

• Безопасность.

• Портативность.

• Упрощение модульного тестирования.

• Упрощение разработки и поддержки приложения в целом. Минусы:

• Обновление бэкенда перезапуском.

• Посредственный дебаг на *Unix системах. Сравнение производительности фреймворков

Фреймворк Простой текст Fortunes Запрос Мультизапрос

ASP NET Core 2 500 70 60 460

Java Spring 2,600 130 100 1,410

Django 1,500 200 130 1,580

Ruby on Rails 3,100 470 300 740

Laravel 3,200 1,170 1,150 1,460

Таблица 1. Сравнение скорости ^ ответа сервера в мс.

Фреймворк Простой текст Fortunes Запрос Мультизапрос

ASP NET Core 2 417,000 7,300 9,600 1,100

Java Spring 50,300 4,200 5,100 350

Django 20,600 2,700 4,100 300

Ruby on Rails 2,900 1,300 1,600 190

Laravel 560 440 460 135

Таблица 2. Сравнение количества ответов сервера в сек. Вывод: среди данных фреймворков бесспорным лидером по производительности является ASP .NET Core 2. Но в реальности, выбор фреймворка зависит от множества факторов, таких как: количество специалистов на рынке труда, знающих выбранный фреймворк на должном уровне, стоимость разработки на выбранном фреймворке, требования к хост-машине (ОС, технические характеристики) и др. Т.е. выбор фреймворка должен учитывать вышеперечисленные факторы, а так же плюсы и минусы фреймворка. Но стоит отметить то, что оптимальными фреймворками для разработки enterprise-решений являются ASP .NET Core 2 и Java Spring.

Использованные источники:

1. Laravel - The PHP Framework For Web Artisans // Laravel. URL: https://laravel.com/ (дата обращения: 15.05.2019).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2. A web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern. // Ruby on Rails URL: https://rubyonrails.org/ (дата обращения: 15.05.2019).

3. The Web framework for perfectionists with deadlines | Django // Django URL: https://www.djangoproject.com/ (дата обращения: 15.05.2019).

4. Spring // Spring. URL: https://spring.io/ (дата обращения: 15.05.2019).

5. Введение в ASP.NET Core // ASP.NET Core. URL: https://docs.microsoft.com/ru-ru/aspnet/core/?view=aspnetcore-2.2

i Надоели баннеры? Вы всегда можете отключить рекламу.