Банк few-shot примеров для ИИ-ассистентов (Few-Shot Bank)
Этот каталог содержит эталонные примеры («Как надо») и антипаттерны («Как не надо») написания кода для проекта
chutils. Эти примеры служат контекстом (few-shot prompting) для ИИ-ассистентов (например, Antigravity, Gemini CLI,
Claude), помогая им мгновенно понимать архитектурные стандарты, соглашения по кодированию и правила безопасности
проекта.
Структура каталога
Каждый кейс в банке примеров выделен в отдельную папку и состоит из трех обязательных компонентов:
good_pattern.py— эталонный, идиоматичный код. Демонстрирует правильное использование модулейchutils, строгую типизацию, обработку исключений и правильное документирование.bad_pattern.py— код, содержащий распространенные ошибки проектирования, уязвимости, нарушение SOLID/DRY или небезопасное использование стандартных альтернатив.README.md— текстовое пояснение, описывающее разницу между паттернами, архитектурные трейдоффы, обоснование выбора подходов и рекомендации для ИИ.
Доступные паттерны
На данный момент в банке представлены следующие архитектурные примеры:
- Обработка ошибок и исключения (
error_handling) — правила создания кастомных исключений, предотвращение перехвата широких исключений (except Exception) и сохранение контекста ошибок. - Управление конфигурацией (
configuration) — корректный маппинг настроек с валидацией через Pydantic-модели и многоуровневое слияние конфигураций вместо захардкоженных переменных окружения. - Практики логирования (
logging) — использование структурированного логирования, настройка асинхронного вывода и маскирование персональных данных (PII) и секретов. - Управление секретами (
secrets) — безопасное получение секретов черезSecretManagerсо строгим режимомrequired=TrueиSecretNotFoundErrorвместоos.getenv(добавлено в v3.0.0). - Опциональные зависимости (
optional_deps) — правильный перехватOptionalDependencyError(v3.0.0+) вместо устаревшегоRuntimeError; использованиеe.hintдля вывода команды установки; стратегии graceful degradation vs fail-fast (ломающее изменение v3.0.0).
Инструкция по добавлению новых примеров (Шаблон)
Если вы хотите добавить новый пример в банк, следуйте этой инструкции:
1. Создайте структуру директории
Создайте поддиректорию под вашу архитектурную тему:
docs/ai_examples/my_feature/
├── README.md
├── good_pattern.py
└── bad_pattern.py
2. Подготовьте bad_pattern.py
Напишите неидиоматичный код. Добавьте в docstring на уровне модуля краткое пояснение, какие антипаттерны здесь представлены. Ограничивайте размер кода (не более 30-50 строк), чтобы не перегружать контекст ИИ.
3. Подготовьте good_pattern.py
Напишите чистую реализацию той же задачи:
- Используйте инструменты
chutils(если применимо). - Соблюдайте строгую типизацию (Zero-Any Strategy).
- Документируйте функции по стандарту Google Style (Args/Returns).
- Добавьте поясняющие docstrings.
4. Напишите README.md
В файле README.md используйте следующую структуру:
- Описание кейса: Какую задачу мы решаем.
- Антипаттерны: Почему код в
bad_pattern.pyплох. - Решение: Почему код в
good_pattern.pyпредпочтителен. - Трейдоффы: Какие компромиссы были сделаны (например, производительность vs читаемость).
- Ключевой совет для ИИ: Четкое резюме одной фразой.