Производственная практика¶
ПМ.01 Разработка модулей программного обеспечения для компьютерных систем
Итоговая работа практики: система мониторинга и аналитики пользовательской активности.
Студент разрабатывает backend-приложение на C# / ASP.NET Core, подключает базу данных через Entity Framework Core, реализует REST API, JWT-авторизацию, роли пользователей, генерацию событий, аналитический модуль, кэширование, логирование и выгрузку отчётов.
| Параметр | Значение |
|---|---|
| Вид практики | Производственная практика |
| Профессиональный модуль | ПМ.01 Разработка модулей программного обеспечения для компьютерных систем |
| Итоговый продукт | REST API для мониторинга и аналитики активности пользователей |
| Уровень сложности | Повышенный: слои, БД, авторизация, роли, паттерны, аналитика, отчёты |
| Язык и платформа | C#, .NET 8, ASP.NET Core Web API |
| Работа с БД | Entity Framework Core; SQLite для учебного стенда, PostgreSQL/MS SQL/MySQL как варианты замены |
| Минимальный результат | Запускаемое API, миграции БД, CRUD событий, JWT, роли, генератор нагрузки, кэш аналитики, CSV-отчёт |
| Формат материала | MkDocs: Markdown-страницы, навигация, кодовые примеры |
Как работать с материалом¶
Материал построен как производственная практика, а не как справочник по синтаксису C#. Это значит, что каждый раздел нужно читать в связке с итоговым проектом. Сначала студент понимает, какую часть системы он сейчас строит, затем переносит код в проект, запускает приложение и проверяет результат через Swagger, HTTP-запрос или базу данных.
Рекомендуемый порядок действий в каждом практическом этапе:
- Прочитать цель этапа и понять, какая возможность появится в приложении.
- Посмотреть объяснение и определить, в какой слой проекта относится новый код.
- Создать или изменить указанные файлы.
- Выполнить команду сборки или запуска.
- Проверить результат по описанному сценарию.
- Зафиксировать, что изменилось в проекте: новая таблица, новый эндпоинт, новый сервис, новая роль или новый отчёт.
Если код не запускается, не нужно сразу переписывать весь этап. Сначала проверьте три вещи: правильный проект выбран для файла, подключены ли using, зарегистрирован ли сервис в Program.cs.
Смысл итогового проекта¶
Система мониторинга активности отвечает на простой производственный вопрос: что пользователи делают в системе и какие выводы можно сделать из этих действий.
Например, обычное приложение может только выполнить действие пользователя. Система мониторинга дополнительно сохраняет факт действия: кто выполнил операцию, когда, из какого источника, насколько действие важно и не является ли оно ошибкой. После накопления таких событий можно строить аналитику: находить частые ошибки, оценивать активность пользователей, выгружать отчёты для руководителя или администратора.
В этой практике событие ActivityEvent является учебной универсальной сущностью. В индивидуальном варианте её можно заменить на заказ, обращение, посещение, заявку, ремонт, рейс или любую другую предметную запись.
Мини-словарь практики¶
| Термин | Простое объяснение |
|---|---|
| Слой приложения | Часть проекта с отдельной ответственностью: API, бизнес-логика, база данных или доменная модель |
| REST API | Способ дать внешним клиентам доступ к данным через HTTP-запросы |
| DTO | Объект для передачи данных наружу или внутрь API без раскрытия всей EF-модели |
| Entity | Класс, который соответствует таблице или важной предметной сущности |
| Repository | Класс, который скрывает запросы к базе данных |
| Service Layer | Класс, где выполняется сценарий работы приложения |
| JWT | Подписанный токен, подтверждающий личность и роль пользователя |
| Миграция | Версионированное изменение структуры базы данных |
| Кэш | Временное хранение результата, чтобы не пересчитывать его каждый раз |
| Отчёт | Выгрузка данных в удобном для анализа формате, например CSV |
Цель практики¶
Сформировать навыки разработки программных модулей для компьютерных систем на примере промышленно приближенного backend-приложения: проектирование архитектуры, реализация бизнес-логики, работа с базой данных, защита API, обработка данных, аналитика и подготовка отчётов.
Задачи¶
- Создать ASP.NET Core Web API и разнести код по слоям
Presentation,Application,Domain,Infrastructure. - Описать предметную модель: пользователи, роли, события активности.
- Подключить EF Core и выполнить миграции.
- Реализовать Repository и Service Layer.
- Создать REST API для регистрации, просмотра, фильтрации и удаления событий.
- Добавить JWT-аутентификацию и разграничение ролей.
- Реализовать генератор событий для имитации нагрузки.
- Настроить логирование важных операций.
- Добавить кэширование аналитических запросов.
- Создать аналитический модуль и выгрузку CSV-отчётов.
- Адаптировать проект под выбранную предметную область.
Итоговая система¶
Система ActivityMonitoring принимает события пользовательской активности:
- вход в систему;
- просмотр страницы;
- создание или изменение данных;
- ошибка действия;
- выход из системы.
На основе событий API строит аналитику:
- количество событий за период;
- активность по пользователям;
- распределение по типам событий;
- последние критичные события;
- выгрузка CSV-отчёта.
Рекомендуемый порядок работы¶
| Блок | Раздел | Что получить |
|---|---|---|
| Теория | Архитектура, REST, EF Core, JWT, паттерны, кэш, логи, отчёты | Понимание решений и мини-примеры кода |
| Практика | 8 пошаговых этапов | Единое запускаемое приложение |
| Адаптация | 30 предметных областей и задания на модификацию | Индивидуальный вариант проекта |
Проверка результата¶
К концу практики студент должен показать:
- Репозиторий с исходным кодом.
- Инструкцию запуска.
- Выполненные миграции или созданную БД.
- Набор REST-запросов для демонстрации.
- JWT-вход для ролей
Admin,Analyst,Operator. - CSV-отчёт, сформированный приложением.
- Краткое описание адаптации под предметную область.