Сокращение бизнес-логики в клиентской части веб-приложений | Статья в сборнике международной научной конференции

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: 4. Информатика

Опубликовано в

XC международная научная конференция «Исследования молодых ученых» (Казань, ноябрь 2024)

Дата публикации: 08.11.2024

Статья просмотрена: 5 раз

Библиографическое описание:

Авчинников, В. В. Сокращение бизнес-логики в клиентской части веб-приложений / В. В. Авчинников. — Текст : непосредственный // Исследования молодых ученых : материалы XC Междунар. науч. конф. (г. Казань, ноябрь 2024 г.). — Казань : Молодой ученый, 2024. — URL: https://moluch.ru/conf/stud/archive/524/18706/ (дата обращения: 16.11.2024).

Препринт статьи



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

Ключевые слова: веб-приложение, корпоративное приложение, бизнес-логика.

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

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

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

Данные общей структуры страницы в формате JSON

Рис. 1. Данные общей структуры страницы в формате JSON

Данные для элемента формы регистрации в формате JSON

Рис. 2. Данные для элемента формы регистрации в формате JSON

Как видно из приведенных примеров, есть несколько разных elem (элемент): “block”, “text”, “h1” и другие элементы, названия которых начинаются с символа “@”. Block — простейший блочный элемент на всю ширину родительского элемента. Text — строчный элемент с текстовым содержимым. H1 — заголовок первого уровня. @Logo, @Search, @ProfileLink, @Form, @Link — это базовые компоненты клиентской части приложения, которые имеют некоторую внутреннюю логику отображения и/или интерактивного взаимодействия.

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

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

Литература:

  1. Где наша бизнес-логика для идеалиста? / [Электронный ресурс] // Хабр: [сайт]. — URL: https://habr.com/ru/articles/219445/ (дата обращения: 07.11.2024).
  2. Авчинников, В. В. Проблемы размещения бизнес-логики в клиентской части веб-приложений / В. В. Авчинников. — Текст: непосредственный // Молодой ученый. — 2024. — № 18 (517). — С. 11–13. — URL: https://moluch.ru/archive/517/111927/ (дата обращения: 07.11.2024).