Сетевое издание
Международный студенческий научный вестник
ISSN 2409-529X

CURRENT STATE OF JET TECHNOLOGIES FRONTEND DEVELOPMENT

1 1
1
Consideration of current trends in the field of front-end development, focused on reactive technologies. An introduction to reactive front-end development describes the desire to create interfaces that automatically respond to data changes. The text analyzes popular reactive libraries and frameworks such as React.js, Vue.js, and Angular, highlighting their features and applications. Unidirectional data flow is seen as an important aspect to improve change tracking and codebase management. The text also addresses reactive JavaScript extensions such as RxJS and highlights their role in handling asynchronous code. The use of reactive technologies in the creation of Progressive Web Apps, providing high responsiveness and the ability to work in offline mode, is considered.
reactive technologies
front-end development
user interfaces
react.js
vue.js
angular
progressive web apps
modern web applications

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

Цель исследования — провести анализ состояния современных реактивных технологий во фронтенд-разработке и их влияние на создание веб-приложений.

Материал и методы исследования

Анализ современного состояния реактивных технологий во фронтенд-разработке и их влияние на создание веб-приложений. Обзор ключевых концепций и подходов в реактивной фронтенд-разработке, анализ популярных фреймворков и библиотек (React.js, Vue.js, Angular), а также изучение реактивных расширений JavaScript, таких как RxJS. Дополнительно рассматривается применение реактивных технологий в создании Progressive Web Apps (PWA). В основе исследования лежит анализ и сравнение функциональности, эффективности и гибкости представленных технологий с целью выявления их преимуществ и областей применения в современной фронтенд-разработке.

Результаты исследования и их обсуждение

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

Однонаправленный поток данных - многие реактивные фреймворки используют подход однонаправленного потока данных (unidirectional data flow), который упрощает отслеживание изменений и обеспечивает четкую структуру кода. Это содействует разделению ответственности и повышению поддерживаемости проектов.

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

Разработка Progressive Web Apps (PWA) - Реактивные технологии широко применяются в создании PWA, обеспечивая высокую отзывчивость и возможность работы в оффлайн-режиме. Это делает веб-приложения более доступными и функциональными для пользователей.

Один из наиболее популярных представителей реактивных технологий:

React.js - это проект на языке JavaScript, который в последнее время доминирует в экосистеме фронтенда. Команда из Facebook разработала и предоставила React в открытый доступ. Разработчики создают и комбинируют компоненты интерфейса веб-приложений с использованием React. React вводит радикальные концепции и вызывает у разработчиков переосмысление bewst-практик. В течение многих лет веб-разработчиков учили создавать HTML, JavaScript и CSS отдельно. React рекомендует писать HTML и CSS на языке JavaScript. После тестирования это кажется не настолько абсурдным. Потому что разработка фронтенда движется в сторону разработки на основе компонентов. Особенности React: Декларативность: Мы хотим видеть результат, а не путь к нему. Используя jQuery, разработчики должны были изменять DOM для переключения состояний приложения. В React мы изменяем состояние внутри компонента, и представление обновляется согласно состоянию. Метод Render() в разметке упрощает предсказание вида компонента. Функциональные черты и чистые функции легко тестировать. Хорошо определенные интерфейсы React облегчают тестирование. Мы можем протестировать компонент, передавая ему различные свойства и состояния и сравнивая отображаемый вывод [1].

Vue.js - это лучший легковесный фронтенд-фреймворк на основе паттерна MVVM в веб-приложениях. На рисунке 1 представлена схематическая диаграмма архитектуры режима MVVM, в которой ViewModle, как промежуточный слой, отвечает за коммуникацию между функциями и данными. Основная библиотека Vue.js фокусируется только на функциональном уровне и поэтому не является универсальным фреймворком. Vue.js может реализовывать отзывчивую двустороннюю привязку данных через простой API и быстро создавать пользовательские интерфейсы. В Vue.js любой вид приложения может быть абстрагирован в дерево компонентов. Если компоненты абстрагированы разумно, несколько маленьких компонентов могут быть повторно использованы для создания большой системы, что снижает повторную разработку [2].

Angular - делает HTML более читаемым, поддерживая привязку данных к DOM. Кроме того, AngularJS поддерживает интегрированную валидацию данных и представляет массив контроллеров (и сервисов) для создания одностраничных приложений. AngularJS объединил идеи Backbone и Knockout, внеся пользовательские компоненты через пользовательские директивы, что сделало Angular очень популярным. Он также внес общий паттерн из ООП, который представляет собой контейнер “Dependency Injection”. Более того, AngularJS представил концепцию MV* или MVW (Model View Whatever), поскольку AngularJS объединил “Controller” и “View” в один контейнер, который управляет обеими функциональностями.

Однако со временем и благодаря множеству рефакторингов и улучшений API, он теперь ближе к парадигме MVVM (Model View ViewModel), где объект $scope можно рассматривать как ViewModel, который декорируется функцией, известной как “Controller”. Модульная структура Angular, строгие рекомендации по разработке и возможность прямой привязки к обычным объектам все улучшают эффективность кодирования, предотвращая множество проблем и обеспечивая прочное архитектурное основание для приложения. Поэтому мы считаем, что эти причины укрепили позицию AngularJS как одного из наиболее читаемых и поддерживаемых фреймворков для веб-разработки. Кроме того, AngularJS предоставляет невиданную поддержку сообщества для ответов на запросы пользователей, выявления ошибок и решения проблем, что предоставляет огромные возможности для исправления ошибок в следующих релизах [3].

В ходе исследования информация о популярности фреймворков была собрана с основных облачных сервис-провайдеров, таких как GitHub, NPM и Stack Overflow. На GitHub Vue оказался самым популярным, имея небольшое преимущество перед React - немного больше звезд и меньше проблем. Angular проигрывает на GitHub, имея в два раза меньше звезд и в несколько раз больше проблем, чем другие. React получает в несколько раз больше загрузок пакетов через NPM, чем два других фреймворка в совокупности. Возможно, Angular просто не нуждается в таком количестве сторонних библиотек, как React, и Vue все еще является новым и развивающимся фреймворком, но однозначно можно сказать, что React - самый популярный фреймворк на NPM. Кажется, что популярность Angular на Stack Overflow достигла своего пика и готовится уступить место React. React и Angular делят лидерство, каждый из них составляет от 2,5% до 3% от общего числа заданных вопросов. Vue, находясь в стабильном росте, составляет всего лишь 8% от общего числа заданных вопросов.

С учетом того, что React полностью доминирует на NPM и делит лидерство как на GitHub, так и на Stack Overflow, можно с уверенностью сказать, что на 2019 год React является самой популярной библиотекой JavaScript [4].

Выводы. В ходе исследования было выявлено, что реактивная фронтенд-разработка нацелена на создание интерфейсов, реагирующих на изменения данных без явного вмешательства программиста. Однонаправленный поток данных в реактивных фреймворках упрощает отслеживание изменений и обеспечивает четкую структуру кода. Реактивные расширения JavaScript, такие как RxJS, предоставляют мощные средства для работы с асинхронным кодом и управления потоками данных. Progressive Web Apps (PWA) активно используют реактивные технологии для обеспечения высокой отзывчивости и работы в оффлайн-режиме. React выделяется как самый популярный на NPM и обладает большой поддержкой на GitHub и Stack Overflow. Vue показывает стабильный рост и популярен на GitHub, но уступает в общей популярности React. Angular испытывает снижение популярности на GitHub и Stack Overflow, но сохраняет свою позицию на NPM. Исследование подтверждает, что React является наиболее популярным фреймворком в сфере фронтенд-разработки, с Vue следующим по популярности, а Angular испытывающим некоторый спад. Факторы популярности включают поддержку сообщества, загрузки пакетов, количество звезд на GitHub и число заданных вопросов на Stack Overflow. Современные реактивные технологии во фронтенд-разработке привносят гибкость, эффективность и отзывчивость в создание веб-приложений. Разработчики активно используют эти инструменты для создания современных и функциональных пользовательских интерфейсов, делая веб-приложения более привлекательными и удобными для конечных пользователей.