В рамках задания мы напишем на Python игрушечный бэкенд для интернет-магазина с локальным хранилищем данных в памяти: научимся создавать, читать, изменять и удалять товары, работать с корзиной и управлять всем этим через простую консоль администратора. Задание выполняется поэтапно, и каждый следующий шаг опирается на предыдущий.
- Запуск локальных проверок — как установить uv на macOS и Windows и запустить скрипты, которые локально выполняют те же проверки кода, что и CI на GitHub.
- Сдача домашнего задания — как загрузить решение в свой форк, оформить Pull Request в исходный репозиторий и что нужно для того, чтобы работа была принята на проверку.
- Часть 1. Генератор идентификаторов Twitter Snowflake — нужно написать генератор 64-битных числовых идентификаторов, в которые упакованы метка времени, номер узла и счётчик последовательности. Такие идентификаторы уникальны и примерно упорядочены по времени, а из самого идентификатора можно узнать, когда и на каком узле он был создан.
- Часть 2. CRUD и корзина для интернет-магазина — нужно реализовать хранилище товаров в памяти (список кортежей), операции создания, чтения, изменения и удаления записей, аккуратную работу с ценами через
Decimalи корзину покупателя, в которую товары переносятся со склада и обратно без потери количества. - Часть 3. Нормализация имён и консоль администратора — нужно привести названия товаров к единому написанию и следить за их уникальностью, научить хранилище печатать себя выровненной текстовой таблицей и написать интерактивную консоль администратора, через которую можно создавать, просматривать, изменять и удалять товары.
- Часть 4. Хранилище-словарь и UUID-идентификаторы — нужно перевести хранилище со списка кортежей на словарь, выдавать товарам идентификаторы в виде UUID, завести индекс имён для быстрой проверки уникальности, научить
update_productменять только часть полей и оформить продуктовую корзину в виде словаря.
| Задание | Дедлайн (включительно) | Статус |
|---|---|---|
| Часть 1. Генератор идентификаторов Twitter Snowflake | 25.09.2026 | дедлайн истек |
| Часть 2. CRUD и корзина для интернет-магазина | 02.10.2026 | дедлайн истек |
| Часть 3. Нормализация имён и консоль администратора | 12.10.2026 | дедлайн истек |
| Часть 4. Хранилище-словарь и UUID-идентификаторы | 01.11.2026 | активно |
Критерии оценивания можно узнать тут.