Python мануфактураJavaDesign Patterns для автоматизаторів

Python мануфактура · Програма курсу · 4:00–6:00

Читання JSON та encoding

`Path.read_text(encoding="utf-8")` повертає text, а `json.loads(text)` перетворює JSON string на Python objects. Явний UTF-8 encoding запобігає platform-dependent проблемам із кирилицею та іншими символами. Для file object існують `json.load`/`json.dump`; суфікс `s` у `loads`/`dumps` означає роботу зі string.

7 робота з файлами →

Python мануфактура · Сесії: AMA та PMP · 15:35–18:42

Чому перевірки лише status code недостатньо

Тест, який перевіряє тільки `200 OK`, пропустить відсутнє поле, `null`, порожній рядок або неправильний mapping. Навіть перевірка переліку полів не гарантує правильного типу чи змісту. Deserialization і schema validation дають дешевий базовий захист: response приводиться до строгої моделі, тому тест одразу виявляє відсутнє поле або неправильний тип. Для цього згадуються інструменти на кшталт Zod у TypeScript і Pydantic у Python. Окремо треба врахувати serializer settings: backend може зовсім вилучати з JSON поля зі значенням `null`.

Міграція бази даних і тестування даних →

Python мануфактура · Програма курсу · 17:25–23:40

Типізована відповідь замість raw dictionary

Raw `dict` змушує пам’ятати рядкові ключі й не дає надійного autocomplete. Response перетворюється на невелику `Project` dataclass із фактично потрібними полями, насамперед `id` та attributes. Десеріалізація має відповідати реальній response schema. Не потрібно моделювати всі поля API «про запас»: для поточного vertical slice достатньо тих, які читає тест, з явною помилкою при відсутньому обов’язковому значенні.

3. API preconditions →
Запитати в чаті про «deserialization» →