научный журнал «Актуальные исследования» #38 (117), октябрь '22

Возможности объектно-ориентированного программирования в задачах созданий цифровой экосреды

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

Аннотация статьи
цифровая трансформация
цифровизация
объектно-ориентированное программирование
цифровая экосреда
Ключевые слова

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

В 2018 году в Российской Федерации началась реализация национального проекта «Цифровая экономика». В рамках выполнения этапов проекта значительное развитие получил портал «ГосУслуги», включивший в себя дополнительные сервисы. Следующим серьезным шагом к цифровизации стало поручение Президента Российской Федерации, требующее внедрения стратегии цифровой трансформации ряда отраслей экономики, госуправления и социальной сферы, импортозамещения программного обеспечения и программно-аппаратных комплексов. На основе требований поручения, субъектами РФ разработаны региональные планы цифрового развития, в которые вошли следующие ключевые направления:

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

Примером региональной цифровой экосреды является приложение «Моя Москва». Более 3 миллионов активных пользователей обращаются к услугам сервисов около 10 миллионов раз. Пользователям доступны сервисы для облегчения повседневной жизни:

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

Все это говорит о направлении вектора развития в сторону создания цифровой экосреды государственного сектора, на что направлены значительные средства (рисунок 1).

Рис. Цифровая трансформация в Российской Федерации

В частном секторе экономики можно выделить цифровые экосреды: Сбер, МТС, VK и Яндекс, развитие которых приближается к мировому уровню. Это уже не просто цифровые платформы или набор микросервисов, а бесшовная цифровая среда, в которой представлены различные сервисы компаний. Экосреды работают в следующих сегментах: цифровой контент, телекоммуникации, финансы, E-commerce, здоровье, образование, технологии, еда, мобильность, физическая розница (таблица).

Таблица

Сегменты цифровой экосреды

 

Контент

Оkkо,

CберЗвук,

Рaмблер Медиа

Kion,

МТC Music,

Библиотека,

WАSD.tv

ЯндекcПоиск,

Кинопоиcк

Mail.ru,

MyGаmes,

Вконтакте, Одноклассники, МойMup@Mаil.ru

Образование

СберКлacc Просвещение

Рабoтa.ру

YоuDо

Яндекc.Учебник, Академия Яндекса,

Яндекc.Прaктикум

SkillBox, GeekBrains,

SkillFaсtory, Mentorama,

«Учи.ру», «Сферум»

E-commerce

CберМaркет, ДoмКлик, Рамблер Каccа

МТC Live

Яндекc.Мaркет

AliExprеss Russiа, VK Mаrkеt,

Юлa

Телеком

Сотовая связь

CберМoбайл,

кабельное ТВ

Сотовая и фиксированная связь, кабельное и спутниковое ТВ

Яндекc.Пoчта

Почта Mail.ru

Мобильность

Доля в Cитимoбил CитиДрaйв

 

Яндекс Go

Яндекс.Драйв

Доля в Cитимoбил CитиДрaйв

Еда

Доля в

Delivery Club,

Самокат,

Кухня на районе

 

Яндекс Go,

Яндекc.Еда,

Яндекc.Лавка

Доля в

Delivery Club,

Самокат,

Кухня на районе

Финансы

ЮМoney

Сбербанк

МТC Банк, МТC Cashback, MTC Каccа, NUUM

Яндекc.Банк

VK Pay

Технологии

Cognitive Pilot, CберАвтoTeх,

Sbеr Devices

MTC Digital,

VisiоnLаbs

Yаndex.Clоud, Yаndеx Self-Driving Group

Облако Mail.ru

Здоровье

Сбер3доровье,

СберЕаптека

SmartMed

Яндекс.Здоровье

«Все аптеки»

Офлайн

Около 13 тыс. офисов

Около 5 тыс. салонов связи

Около 2 тыс. брендированных пунктов выдачи заказов

Около 2 тыс. пунктов выдачи заказов

Как в государственном, так и в частном секторе интеграция различных сервисов в одной цифровой экосреде позволяет управлять пользовательским поведением, добиваться максимальной скорости и прозрачности процессов, обнаруживать проблемы и точки улучшения в разных направлениях деятельности, тем самым повышая эффективность функционирования организации [1-9].

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

В настоящее время наиболее популярны следующие парадигмы программирования:

  • императивное программирование;
  • функциональное программирование;
  • объектно-ориентированное программирование (ООП).

Императивная парадигма – подход к программированию, появившийся еще в 1950-х годах, является одним из самых ранних подходов. В императивных языках программирования принято использование:

  • именованных переменных;
  • оператора присваивания;
  • составных выражений;
  • подпрограмм.

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

Ключевые понятия функциональной парадигмы:

  • выражения;
  • функции;
  • параметрический полиморфизм;
  • абстракция данных.

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

Зародившаяся в 1990-х годах парадигма ООП является потомком императивной. Однако ООП хранит состояние в объектах, а не в переменных. Языки программирования, основанные на ООП, часто лучше справляются со сложными приложениями.

Ключевые принципы ООП:

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

Основными функциями ООП:

  • объекты;
  • классы;
  • инкапсуляция данных;
  • наследование;
  • полиморфизм.

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

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

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

Полиморфизм – способность объекта использовать методы производного класса, который не существует на момент создания базового.

Тремя наиболее популярными языками программирования, использующими объектно-ориентированную парадигму, являются Java, C++ и Python [10-16].

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

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

Преимущества использования ООП при разработке цифровых экосред:

  • удобство тестирования. Модульность системы, полученная с помощью классов, и ограниченность методов, полученная с помощью инкапсуляции, упрощает написание тестов;
  • предсказуемость поведения. Поскольку программа поделена на модули, каждый из которых выполняет конкретную задачу, либо ограниченный блок задач, то в случае возникновения ошибки есть возможность локализовать проблему по косвенным признакам;
  • удобство документирования. Правильно написанный код с использованием ООП является самодокументируемым;
  • возможность использования готовых архитектурных решений. За все время существования ООП было множество проблем и задач проектирования архитектуры, решения которых впоследствии стали типовыми и получили название «Паттерны проектирования». Они позволяют использовать накопленный другими разработчиками опыт;
  • единство разработки. Разработанные классы можно сделать настолько низкоуровневыми, что их можно будет использовать в любой части этой и других программ. Примером переиспользуемых классов являются классы моделей данных, используемых в базах данных.

Недостаток использования ООП при разработке цифровых экосред:

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

Использование объектно-ориентированного подхода в некоторых случаях приводят к снижению производительности программ:

  • динамическое связывание методов. Объективно динамическое связывание требуется в 20 % случаев, однако некоторые языки программирования используют его для обеспечения полиморфизма в процессе исполнения программы, на что тратится дополнительное время;
  • значительная глубина абстракции. В процессе объектно-ориентрованного программирования часто создаются многоуровневые приложения, когда для выполнения необходимого действия осуществляется многократное обращение к объектам более низкого уровня. Повторяющиеся вызовы методов и возвраты из них сказываются на производительности;
  • инкапсуляция снижает скорость доступа. Ограничение на прямой доступ к данным извне приводит к созданию и использованию дополнительных методов доступа;
  • динамическое создание и уничтожение объектов. Динамически создаваемые объекты, размещаются не на стеке, что является менее эффективным.

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

Текст статьи
  1. Бухонова, С. М. Цифровые экосистемы российских банков / С. М. Бухонова, Д. К. Плаксина // Белгородский экономический вестник. – 2021. – № 2(102). – С. 80-84. – EDN OFIVMQ.
  2. Данильянц, Г. Г. Цифровые экосистемы как фактор развития корпоративного и государственного менеджмента / Г. Г. Данильянц, И. Э. Гергиев // Вектор экономики. – 2020. – № 11(53). – С. 40. – EDN RNEWXP.
  3. Завгородний, А. Ф. Цифровая трансформация современных цепочек поставок и их переход к единой цифровой экосистеме / А. Ф. Завгородний, А. Д. Горохов // Экономика и бизнес: теория и практика. – 2022. – № 3-1(85). – С. 95-99. – DOI 10.24412/2411-0450-2022-3-1-95-99. – EDN NEJFXJ.
  4. Звягин, Л. С. Цифровая экосистема и глобальное цифровое пространство как инструменты современных it-решений / Л. С. Звягин // Экономика и управление: проблемы, решения. – 2020. – Т. 1. – № 4. – С. 126-134. – EDN DIVAVJ.
  5. Рысьмятов, А. З. Новые подходы к формированию и управлению инновационной экосистемой в условиях цифровой экономики / А. З. Рысьмятов, Д. Я. Родин // Институциональные преобразования АПК России в условиях глобальных вызовов : Сборник тезисов по материалам II Международной конференции, Краснодар, 30–31 октября 2018 года / Отв. за выпуск А.Г. Кощаев. – Краснодар: Кубанский государственный аграрный университет имени И.Т. Трубилина, 2018. – С. 121. – EDN WPEXHZ.
  6. Сильванович, В. И. Экосистема цифровых технологий и векторы цифровой трансформации экономики и общества: теоретические положения / В. И. Сильванович // Цифровая экономика - экономика будущего: исторические предпосылки, правовая основа и экономический эффект : Сборник статей международной научно-практической конференции, Минск, 28 февраля 2019 года / Редколлегия: А.Б. Елисеев, И.А. Маньковский [и др.]. – Минск: СтройМедиаПроект, 2019. – С. 87-90. – EDN PDMENN.
  7. Хогоева, И. П. Особенности развития цифровых экосистем в России / И. П. Хогоева // Экономический вестник Восточно-Сибирского государственного университета технологий и управления. – 2022. – № 1(13). – С. 35-41. – EDN QIETSE.
  8. Цифровая экономика: концептуальная архитектура экосистемы цифровой отрасли / Ю. М. Акаткин, О. Э. Карпов, В. А. Конявский, Е. Д. Ясиновская // Бизнес-информатика. – 2017. – № 4(42). – С. 17-28. – DOI 10.17323/1998-0663.2017.4.17.28. – EDN VXTIPJ.
  9. Цифровое здравоохранение в цифровом обществе. Экосистема и кластер / О. Е. Карпов, Ю. М. Акаткин, В. А. Конявский [и др.]. – Москва : Издательство «ДПК Пресс», 2017. – 220 с. – ISBN 978-5-91976-104-4. – EDN YPJFJZ.
  10. Парадигмы программирования / В. В. Сааков, З. Х. Шаушева, Д. А. Кирин, Э. Ю. Агаджанян // European research : сборник статей XXXV Международной научно-практической конференции, Пенза, 07 февраля 2022 года. – Пенза: Наука и Просвещение (ИП Гуляев Г.Ю.), 2022. – С. 44-46. – EDN GNZPBB.
  11. Зартдинов, А. Р. Наиболее эффективные способы применения паттернов проектирования при разработке сложных программных продуктов / А. Р. Зартдинов, А. А. Румянцев // Научный Лидер. – 2022. – № 20(65). – С. 14-18. – EDN EPNPZX.
  12. Пилясова, В. В. Современные технологии и средства разработки программного обеспечения / В. В. Пилясова, С. В. Курегян // Молодежь в науке и предпринимательстве : Сборник научных статей ХI международного форума молодых ученых, Гомель, 19 мая 2022 года / Редколлегия: С.Н. Лебедева [и др.], под науч. редакцией Н.В. Кузнецова. – Гомель: Белорусский торгово-экономический университет потребительской кооперации, 2022. – С. 66-68. – EDN NHLWVS.
  13. Арловский, И. В. Объектно-ориентированный подход к программированию / И. В. Арловский // Наука. Образование. Инновации : Сборник научных трудов по материалам XXXVIII Международной научно-практической конференции, Анапа, 12 января 2022 года. – Анапа: Общество с ограниченной ответственностью «Научно-исследовательский центр экономических и социальных процессов» в Южном Федеральном округе, 2022. – С. 172-175. – EDN EINTAW.
  14. Логанов, С. В. Объектно-ориентированные принципы разработки информационных систем : Учебное пособие / С. В. Логанов, С. Л. Моругин. – Москва : Ай Пи Ар Медиа, 2022. – 217 с. – ISBN 978-5-4497-1576-0. – EDN VOBGET.
  15. Гончаров, А. М. Роль технологии объектно-ориентированного программирования в обеспечении функционирования магазина автоматической торговли / А. М. Гончаров // Теория и практика экономики и предпринимательства : труды XIX Международной научно-практической конференции, Симферополь - Гурзуф, 14–16 апреля 2022 года. – Симферополь: Крымский федеральный университет им. В.И. Вернадского, 2022. – С. 274. – EDN CVQCCU.
  16. Кузнецова, И. Р. Применение современных веб-технологий для управления бизнес-процессами / И. Р. Кузнецова, А. С. Букунов // Научный потенциал молодежи и технический прогресс : материалы V Всероссийской научно-практической конференции, Санкт-Петербург, 20 мая 2022 года. – Санкт-Петербург: НИЦ МС, 2022. – С. 9-11. – EDN ABRRTX.
Список литературы