02 · Данные
Данные приложения
- Заказчик
- мебельная фабрика «Спинка»
- Вы делаете
- слой данных для учёта заказов
Проектируете слой данных внутреннего приложения: схему PostgreSQL, запросы и миграции, которые меняют структуру базы без потери накопленного.
Маршрут
10 заданий
Время
30–40 ч
Бесплатно
первые 4
около 12 ч работы с проверкой и рецензией
Уровень: от junior. Нужно уметь: писать небольшие приложения на Python, простые SQL-запросы, запускать Docker
Начать бесплатно · PythonЧему научитесь
- Выражать предметную модель схемой и ограничениями
- Писать запросы с соединениями и оценивать их стоимость
- Выпускать изменение схемы по фазам
Что будет к концу практикума
Слой данных приложения заказов на PostgreSQL в вашем Git-репозитории: таблицы с проверками, отчёты, миграции, которые меняли базу с уже накопленными данными, и план поэтапного выпуска. Плюс отдельный проект, где вы сами меняете базу работающей программы.
Задания по порядку
Задания развивают один Git-репозиторий: следующее приходит через softpractice update поверх вашего принятого решения. Отдельный проект получает только задание с пометкой «новый проект». Код вы пишете локально, в своём редакторе. Под названием каждого задания — навык, который оно тренирует.
Задания 1–4 — бесплатно
Без подписки: каждое решение проходит тесты и получает рецензию по вашему коду.
- 1Модель заказаПроектировать таблицы для заказов: что получает свой ключ, как таблицы связаны и почему цена в заказе не должна меняться вместе с каталогом.5 ч
- 2Допустимые данныеРешать, какие проверки данных делает сама база — NOT NULL, CHECK, внешние ключи, — а какие код приложения, и объяснять свой выбор.3 ч
- 3Заказ целикомСохранять заказ со всеми позициями в одной транзакции — целиком или никак — и при этом сообщать понятную причину отказа.2 ч
- 4Правильный отчётПисать SQL-отчёты с JOIN и GROUP BY, которые не задваивают числа и не теряют строки без связанных записей.2 ч
Дальше — по подписке
Подписка открывает остальные задания и весь каталог практикумов.
- 5Рабочий списокДелать постраничный список, в котором заказы не повторяются и не пропадают, даже если у них одинаковое время создания.2 ч
- 6Стоимость запросаЧитать план запроса PostgreSQL, ускорять медленный запрос индексом и понимать, чем приходится платить за этот индекс.2,5 ч
- 7Плановая дата отгрузкиДобавлять поле в базу, где уже есть данные, не придумывая значений для старых записей, и проверять миграцию и на новой, и на заполненной базе.2,5 ч
- 8Частичные отгрузкиМенять структуру таблиц вместе с накопленными данными: переносить старые записи так, чтобы перенос можно было безопасно запустить повторно.4 ч
- 9Выпуск по фазамВыпускать изменение базы по шагам, пока старая и новая версии приложения работают одновременно, и заранее продумывать, как восстановиться при сбое.4 ч
- 10Перенос навыка: история приоритета обращенийновый проектСамостоятельно добавить историю изменений в работающую программу: перенести старые данные без выдуманного прошлого и посчитать отчёт без двойного счёта.4,5 ч
Начните с первых 4 заданий бесплатно
Зарегистрируйтесь, установите CLI и скачайте starter-проект. Если формат подойдёт, подписка откроет продолжение.
Начать бесплатно · Python