07 · Архитектура
Слои, порты и сборка
- Заказчик
- сервисная служба, заявки на ремонт офисной техники
- Вы делаете
- сервис, который принимает одно действие через разные входы
Проводите границу операции, собираете приложение для HTTP и пакетного входа, управляете настройками и ресурсами, честно сообщаете исход после сбоя и подключаете второй канал уведомлений по проверяемому договору.
Маршрут
6 заданий
Время
14–20 ч
Бесплатно
первые 2
около 5 ч работы с проверкой и рецензией
Уровень: middle. Нужно уметь: писать сервис на Python с базой и HTTP, писать тесты pytest, работать с Git
Начать бесплатно · PythonЧему научитесь
- Отделять действие приложения от формы, в которой его прислали
- Собирать зависимости в одном месте и закрывать ресурсы на любом пути
- Проверять несколько реализаций одним договором
Что будет к концу практикума
Сервис регистрации заявок в вашем Git-репозитории: одна операция под двумя формами, пакетным файлом и прямым вызовом, общая сборка, два канала уведомлений, собственные проверки договора и записанные решения.
Задания по порядку
Задания развивают один Git-репозиторий: следующее приходит через softpractice update поверх вашего принятого решения. Отдельный проект получает только задание с пометкой «новый проект». Код вы пишете локально, в своём редакторе. Под названием каждого задания — навык, который оно тренирует.
Задания 1–2 — бесплатно
Без подписки: каждое решение проходит тесты и получает рецензию по вашему коду.
- 1Две формы — одна операцияОтделять действие приложения от формы, в которой его прислали: одна операция для нескольких форм и прямого вызова, правило допустимости в одном месте.2,5 ч
- 2Пакетный вход и общая сборкаПодключать к одной операции второй вход без HTTP и собирать её зависимости в одном месте, оставляя каждому входу свою границу и свой способ сообщить исход.2,5 ч
Дальше — по подписке
Подписка открывает остальные задания и весь каталог практикумов.
- 3Несколько устройств принимаются целикомНаходить владельца действия из нескольких записей, которое должно приниматься целиком из любого входа, и проводить одну границу фиксации так, чтобы внешний эффект наступал только после неё.2,5 ч
- 4Настройки и владельцы ресурсовПроверять настройки до первого открытого ресурса и передавать их явно, а у каждого ресурса держать владельца, который закрывает его при любом выходе, даже после неудачной сборки.2,5 ч
- 5Что произошло после сбояОписывать исход вызова внешнего сервиса тем, что приложение о нём знает, назначать его один раз и проводить через все входы, не отменяя уже записанного.2,5 ч
- 6Второй канал по тому же договоруЗаписывать договор, который нужен приложению от внешнего сервиса, общими проверками и прогонять их на каждой реализации, включая проверочную.2,5 ч
Начните с первых 2 заданий бесплатно
Зарегистрируйтесь, установите CLI и скачайте starter-проект. Если формат подойдёт, подписка откроет продолжение.
Начать бесплатно · Python