Поздравляем с 9 мая!
   
Телефон: 8-800-350-22-65
Напишите нам:
WhatsApp:
Telegram:
MAX:
Прием заявок круглосуточно
График работы офиса: с 9:00 до 21:00 Нск (с 5:00 до 19:00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 15(353)

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

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6

Библиографическое описание:
Шамсеев А.И. АРХИТЕКТУРНЫЕ ПОДХОДЫ И ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ ПРИ РАЗРАБОТКЕ СИСТЕМЫ УПРАВЛЕНИЯ // Студенческий: электрон. научн. журн. 2026. № 15(353). URL: https://sibac.info/journal/student/353/412190 (дата обращения: 09.05.2026).

АРХИТЕКТУРНЫЕ ПОДХОДЫ И ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ ПРИ РАЗРАБОТКЕ СИСТЕМЫ УПРАВЛЕНИЯ

Шамсеев Айдар Ирекович

магистрант, кафедра автоматизированных систем управления, Уфимский университет науки и технологий,

РФ, г. Уфа

Антонов Вячеслав Викторович

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

д-р техн. наук, заведующий кафедрой АСУ, Уфимский университет науки и технологий,

РФ, г. Уфа

ARCHITECTURAL APPROACHES AND DESIGN PATTERNS IN DEVELOPING A SERVICE TICKET MANAGEMENT SYSTEM BASED ON PYTHON/FLASK

 

Shamseyev Aidar Irekovich

Master's student, Department of Automated Control Systems, Ufa University of Science and Technology,

Russia, Ufa

Antonov Vyacheslav Viktorovich

Scientific supervisor, Doctor of Technical Sciences, Head of the ACS Department, Ufa University of Science and Technology,

Russia, Ufa

 

АННОТАЦИЯ

Статья посвящена анализу архитектурных подходов и программных паттернов, применяемых при проектировании информационных систем управления сервисными заявками. Рассматривается практика использования микрофреймворка Flask как основы трёхзвенной архитектуры с разделением ответственности. Проведён сравнительный анализ паттернов (Factory, Blueprint, Repository) применительно к задаче автоматизации сервисных бизнес-процессов. Обоснован выбор инструментальных средств: SQLAlchemy, Flask-Login, WTForms и Chart.js. Описана методика применения принципов SOLID при структурировании кода. Выявлены типичные архитектурные ошибки и предложены способы их устранения. Результаты формируют практические рекомендации для разработчиков, реализующих системы управления заявками без привлечения дорогостоящих ITSM-платформ.

ABSTRACT

The article analyzes architectural approaches and design patterns applied in the development of service ticket management information systems. The use of Flask microframework as the basis for a three-tier architecture with separation of concerns is examined. A comparative analysis of design patterns (Factory, Blueprint, Repository) as applied to service process automation is conducted. The selection of tooling is justified: SQLAlchemy, Flask-Login, WTForms, and Chart.js. A methodology for applying SOLID principles in structuring web application code is described. Typical architectural errors are identified and remediation approaches proposed. The results provide practical recommendations for developers building ticket management systems without costly commercial ITSM platforms.

 

Ключевые слова: Flask; архитектурные паттерны; Blueprint; Repository; SQLAlchemy; SOLID; реинжиниринг; система управления заявками.

Keywords: Flask; architectural patterns; Blueprint; Repository; SQLAlchemy; SOLID; reengineering; ticket management system.

 

1. Введение

Проектирование информационных систем управления сервисными процессами сопряжено со специфическими архитектурными вызовами: высокой неопределённостью требований на начальном этапе и необходимостью быстрого прототипирования [1]. Flask с его принципом «минимально необходимого набора» предоставляет разработчику полную свободу в выборе архитектурных решений, однако именно эта свобода нередко приводит к системным ошибкам: смешению бизнес-логики с маршрутизацией, пренебрежению разделением ответственности и игнорированию инверсии зависимостей [2].

Цель работы — систематизировать архитектурные подходы и паттерны проектирования, наиболее эффективные при реализации систем управления сервисными заявками на базе Python/Flask, и сформулировать рекомендации для их практического применения.

2. Трёхзвенная архитектура системы

Предложенная архитектура разделяет приложение на три уровня. Уровень представления включает шаблоны Jinja2 и Bootstrap — исключительно для отображения данных и перехвата пользовательских действий. Уровень бизнес-логики реализован через маршруты Flask и сервисные модули: маршрут принимает HTTP-запрос, вызывает сервисную функцию и возвращает ответ — не более того [3]. Уровень данных построен на SQLAlchemy ORM с паттерном Repository, скрывающим детали SQL за интерфейсом доменных объектов, что обеспечивает независимость сервисного слоя от конкретной СУБД.

3. Применение паттернов проектирования

Паттерн Application Factory создаёт экземпляр приложения внутри функции create_app(), что обеспечивает изоляцию конфигурации тестовой и продуктивной сред и устраняет циклические импорты [3].

Механизм Blueprint разделяет маршруты по функциональным доменам. В системе управления заявками выделены четыре Blueprint: auth, tickets, admin и reports. Каждый может быть подключён или деактивирован независимо, что обеспечивает инкрементальное внедрение без правки остального кода.

Паттерн Repository инкапсулирует логику доступа к данным, предоставляя сервисному уровню методы find_by_id(), find_by_status(), find_assigned_to(). При написании тестов репозитории подменяются mock-объектами — бизнес-логика тестируется без обращения к реальной базе данных [4].

Таблица 1.

Сравнительный анализ паттернов проектирования в Flask-приложении

Паттерн

Уровень применения

Решаемая проблема

Эффект

Application Factory

Инициализация

Циклические импорты, изоляция конфигурации

Поддержка нескольких сред (тест / прод)

Blueprint

Маршрутизация

Монолитная структура маршрутов

Модульность, независимое отключение

Repository

Данные

Зависимость от SQL в сервисах

Тестируемость, замена СУБД

SOLID / DI

Сервисы

Жёсткая связанность компонентов

Расширяемость и замена реализаций

 

4. Принципы SOLID в структурировании кода

Принцип единственной ответственности (SRP) требует, чтобы маршруты обрабатывали только HTTP-протокол, сервисы содержали бизнес-правила, а репозитории управляли данными — без каких-либо пересечений. Принцип открытости/закрытости (OCP) реализуется через добавление нового типа уведомлений (Telegram-бот, push) без изменения существующего кода сервиса: достаточно зарегистрировать новый обработчик в фабрике уведомлений [5].

Принцип инверсии зависимостей (DIP) достигается передачей репозиториев через аргументы конструктора или Flask application context. Это позволяет при тестировании подменить реальный репозиторий in-memory заглушкой без единого изменения в бизнес-логике [6].

5. Типичные архитектурные ошибки и рекомендации по инструментальным средствам

Анализ практики разработки Flask-прототипов позволил выявить ряд рекуррентных ошибок: размещение бизнес-логики напрямую в route-функциях («толстые маршруты»); формирование объекта типа God Object, объединяющего всю логику в одном модуле; прямые SQL-запросы в Jinja2-шаблонах; хранение SECRET_KEY и паролей БД в коде вместо переменных окружения (.env); отсутствие миграций схемы (Flask-Migrate / Alembic) [7].

Для устранения перечисленных проблем рекомендуется следующий инструментальный стек. На уровне данных — SQLAlchemy + Flask-Migrate: первая обеспечивает ORM с поддержкой нескольких СУБД, вторая — версионируемые миграции. Переход с SQLite (прототип) на PostgreSQL (продуктивная среда) осуществляется без правки кода. На уровне авторизации — Flask-Login + bcrypt (cost factor ≥ 12). На уровне форм — Flask-WTF с автоматической защитой от CSRF. Для аналитики — Chart.js на стороне клиента: библиотека снижает нагрузку на сервер и хорошо интегрируется с Bootstrap 5 [8].

6. Заключение

В работе систематизированы архитектурные подходы и паттерны, применимые при разработке систем управления сервисными заявками на базе Python/Flask. Показано, что последовательное применение Application Factory, Blueprint и Repository в сочетании с принципами SOLID позволяет создать масштабируемую и тестируемую систему. Сформулированные рекомендации по инструментальному стеку охватывают все уровни архитектуры и ориентированы на разработчиков, реализующих подобные системы в условиях ограниченных ресурсов. Направление дальнейших исследований — микросервисная декомпозиция и облачное развёртывание системы.

 

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

  1. Халевин Т.А. Основы фреймворка Flask для написания web-страниц в Python // Электронный научный журнал «Дневник науки». — 2023. — № 6. — URL: https://dnevniknauki.ru/images/publications/2023/6/technics/Khalevin3.pdf (дата обращения: 20.04.2026).
  2. Гончаренко А.Д. Проектирование веб-приложения на основе Flask и Python, микросервисная и облачная архитектура // Материалы 80-й научной конференции студентов и аспирантов БГУ. — 2023. — URL: https://elib.bsu.by/handle/123456789/313625 (дата обращения: 20.04.2026).
  3. Ваганова П.А. Современные способы обработки запросов в службу технической поддержки // Вестник науки. — 2024. — URL: https://cyberleninka.ru/article/n/sovremennye-sposoby-obrabotki-zaprosov-v-sluzhbu-tehnicheskoy-podderzhki (дата обращения: 20.04.2026).
  4. Эрдман А.А. Использование Flask и Pandas для автоматической генерации писем // Постулат. — 2024. — № 11. — URL: https://e-postulat.ru/index.php/Postulat/article/view/5794 (дата обращения: 20.04.2026).
  5. Хаммер М., Чампи Дж. Реинжиниринг корпорации: манифест революции в бизнесе. — М.: Манн, Иванов и Фербер, 2011. — 287 с.
  6. Киргизова Е.В., Фирер А.В. Автоматизация учёта и мониторинга активного сетевого оборудования // Международный научно-исследовательский журнал. — 2024. — № 10(148). — URL: https://research-journal.org/media/articles/14757.pdf (дата обращения: 20.04.2026).
  7. Тарасов В.Г. Исследование бизнес-процессов сервисного обслуживания тепловой автоматики тепловых электростанций // Сибирский аэрокосмический журнал. — 2012. — URL: https://cyberleninka.ru/article/n/issledovanie-biznes-protsessov-servisnogo-obsluzhivaniya (дата обращения: 20.04.2026).
  8. Попов А.Д. Веб-сервис с моделью машинного обучения для мониторинга воздушного пространства // Вестник Дагестанского государственного технического университета. — 2024. — Т. 51, № 3. — URL: https://vestnik.dgtu.ru/jour/article/view/1563 (дата обращения: 20.04.2026).