Курс: 3
Семестр: 6
Форма аттестации: Зачёт
Научимся делать интернет-системы правильно: не просто CRUD на коленке, а настоящую архитектуру с DDD, микросервисами, CQRS и другими buzzword'ами, которые реально работают! 💪
- 32 часа лекций (архитектура, паттерны, best practices)
- 24 часа лабораторных (практика - руки в код!)
- 9 лабораторных работ - одна предметная область, прокачивается от ЛР к ЛР
Полный список из 40 вар вариантов →
Прогрессия: выбираешь один вариант в начале семестра и развиваешь его через все 9 лаб:
- Сценарий транзакции - моделируем use-case, находим точки отказа
- Гексагональная архитектура - порты/адаптеры, изоляция домена
- Доменный уровень - Entity, Value Object, Агрегаты, инварианты
- Уровень приложения - CQRS, команды, запросы, обработчики
- Инфраструктурный уровень - БД, репозитории, адаптеры, конфигурация
- Тестирование - unit/integration тесты, CI, покрытие кода
- CQRS - разделение чтения/записи, eventual consistency
- Модули и сервисы - декомпозиция на bounded contexts, микросервисы
- Protocol Buffers - gRPC, версионирование схем, производительность
- 🚀 Таск-трекер «Не прокрастинируй» - Ставим задачи быстрее, чем откладываем
- 📅 Бронь аудиторий «Не занято?» - Бронируй до того, как заняли магистры
- 🎓 Мини-LMS «Учись, не болей» - Короткие уроки, длинные знания
- 🔥 Хэбит-трекер «Я молодец!» - Отметь прогресс - порадуй дофамин
- 💸 Финучёт «Где мои деньги» - Траты видны - совесть включена
...и ещё 35 крутых тем!
Backend:
- Java (Spring Boot)
- C# (ASP.NET Core)
- Python (FastAPI/Django)
- Node.js (NestJS/Express)
- Go (если вы хардкор 😎)
База данных:
- PostgreSQL / MySQL (основная БД)
- Redis (кэш, сессии)
Сообщения:
- RabbitMQ / Kafka (для событий)
Контейнеризация:
- Docker, Docker Compose
Тестирование:
- JUnit/TestNG, xUnit, pytest, Jest - по стеку
API:
- REST (OpenAPI/Swagger)
- gRPC (Protocol Buffers)
- 70% - Лабораторные работы и их защита
- 30% - Текущий контроль (опросы, мини-проверки)
Важно: Каждая лаба усложняет предыдущую - нельзя пропустить!
- Формат: Репозиторий + README + защита
- Критерии: Корректность архитектуры, соблюдение границ, тестируемость, качество кода
- Git: Используй ветки для каждой лабы (
lab-01,lab-02, ...) - Рефакторинг: Можно (и нужно!) улучшать код предыдущих лаб
Все коммиты должны быть подписаны и отображаться в GitHub как Verified.
gpg --full-generate-keyРекомендуемые ответы:
- Type: RSA and RSA
- Size: 4096
- Expire: 0 (без срока) или 1y (на год)
- Name/Email: тот же email, что в GitHub
gpg --list-secret-keys --keyid-format=longСкопируйте значение после sec rsa4096/ - это ваш KEY_ID.
gpg --armor --export <KEY_ID>Скопируйте вывод и добавьте в GitHub: Settings -> SSH and GPG keys -> New GPG key.
git config --global user.signingkey <KEY_ID>
git config --global commit.gpgsign true
git config --global gpg.program gpggit commit -m "test signed commit" --allow-empty
git log --show-signature -1Если подпись не отображается как Verified, проверьте:
- Email в ключе совпадает с email в GitHub
- Публичный ключ добавлен в GitHub: Settings -> SSH and GPG keys
После курса ты сможешь:
- Проектировать доменную модель (bounded context, entities/value objects, aggregates)
- Применять архитектурные паттерны (hexagonal/clean architecture)
- Разделять ответственность через CQRS
- Декомпозировать систему на микросервисы
- Проектировать API и интеграции (REST/gRPC, асинхронные сообщения)
- Тестировать архитектуру (unit/integration тесты)
- Применять базовые практики DevOps (CI/CD, контейнеризация)
- Варианты лабораторных работ
- Лабораторная работа №1
- Лабораторная работа №2
- Лабораторная работа №3
- Лабораторная работа №4
- Лабораторная работа №5
- Лабораторная работа №6
- Лабораторная работа №7
- Лабораторная работа №8
- Лабораторная работа №9
- Не откладывай - каждая лаба строится на предыдущей
- Читай код других систем (GitHub, open source проекты)
- Задавай вопросы - лучше переспросить, чем сделать неправильно
- Тестируй - код без тестов = дом без фундамента
- Рефактори смело - архитектура эволюционирует
- Используй AI - GitHub Copilot, ChatGPT для генерации шаблонов (но понимай, что генерируешь!)
- Email: [указать]
- Консультации: [указать время и место]
- Репозиторий курса: https://github.com/brstu/PIS-2026
Главное правило: Пишем код так, чтобы через год не ругать себя 😄
Удачи! 🚀