План практических занятий: ООП (Python)
Среда
Python 3.11+ (для ExceptionGroup/except* в разделе исключений). Запуск:
python practice_XX.py или в REPL. Доступны стандартная библиотека (abc,
typing, contextlib, dataclasses).
Формат занятий
Каждая практика привязана к своей лекции (practice_NN ↔ lecture_NN) и включает:
- Цель — что студент научится делать.
- Краткая теория — опорные понятия лекции.
- Задания — нарастающей сложности, со скелетами кода и требованиями (готовых решений нет — их пишет студент).
- Критерии оценки — распределение баллов в процентах.
- Вопросы для самопроверки.
В разделе 1 практик меньше, чем лекций (6 на 9): часть практик закрывает по несколько смежных лекций. В разделе 2 практик больше (10 на 7): паттерны и архитектура отрабатываются несколькими отдельными лабами.
Раздел 1 (6 практик)
- Классы и инкапсуляция — атрибуты/методы,
@property,_/__,@classmethod/@staticmethod, магические методы. - Наследование, полиморфизм и абстракция — иерархии,
super(), перегрузка операторов,abc/@abstractmethod. - SOLID на практике — рефакторинг legacy-класса по пяти принципам.
- Множественное наследование и миксины — MRO/C3, кооперативный
super(), предсказание__mro__. - Протоколы и контекстные менеджеры —
typing.Protocol, делегирование,__enter__/__exit__,@contextmanager. - Дескрипторы и метаклассы — поля-валидаторы,
__slots__, метакласс-реестр, мини-ORM.
Раздел 2 (10 практик)
- Обработка исключений —
try/except/else/finally, иерархия,raise from, трассировка. - Кастомные исключения и иерархии — доменные ошибки, цепочки,
ExceptionGroup, обработка по слоям. - Порождающие паттерны — Factory, Abstract Factory, Singleton, Builder.
- Структурные паттерны — Adapter, Decorator, Facade, Composite.
- Поведенческие паттерны — Strategy, Observer, Command (undo), Template Method.
- Слоистая архитектура — приложение из слоёв Presentation/Service/Data.
- Репозиторий и Unit of Work — интерфейс + реализации, мок, commit/rollback.
- Dependency Injection — внедрение через конструктор, инверсия зависимостей, DI-контейнер.
- MVC, MVP, MVVM — одна фича в трёх презентационных паттернах.
- Комплексный проект на Clean Architecture — итоговое приложение (domain → services → adapters → composition root).
Связь с экзаменом
Практики дают навыки, проверяемые практической частью экзамена
(private_exam_tasks_1.md и private_exam_tasks_2.md): трассировка, реализация,
рефакторинг и проектирование.
Итоговая практика 16 — мини-проект, объединяющий весь материал раздела 2.