Кристиан Ледерманн: Бинго по м... Заметка
Planet Python на русском

Кристиан Ледерманн: Бинго по модным словам: Эксперимент по разработке ИИ, управляемой спецификациями

Автор разработал Buzzword Bingo, многопользовательскую игру для конференций, чтобы исследовать пределы разработки, управляемой спецификациями и с помощью ИИ, используя Claude. Игра позволяет пользователям создавать и делиться уникальными игровыми полями для бинго, а игроки отмечают ключевые слова по мере их появления. Основной целью проекта было проверить, насколько эффективно Claude может генерировать надежный Python-код с полным покрытием типов, соответствующий строгим производственным стандартам. Процесс разработки в значительной степени опирался на разработку, управляемую спецификациями, с использованием Speckit, определяя поведение системы для реализации Claude.В качестве бэкенда использовались Django, HTMX, шаблоны Django и PostgreSQL, причем HTMX применялся для эффективных взаимодействий без состояния на стороне клиента. Ключевым решением в дизайне было использование URL-адресов возможностей для авторизации, предоставление доступа на основе владения URL-адресом, что устраняло необходимость в учетных записях пользователей или сложной аутентификации. Автор отдал приоритет экстремальной типобезопасности, используя комбинацию проверщиков типов ty, zuban и pyrefly с строгой конфигурацией Ruff.Claude преуспел в создании точных аннотаций типов при наличии четких примеров, продемонстрировав способность генерировать выразительные доменные модели. Хуки pre-commit, сгенерированные с помощью pc-init, оказались бесценными для обеспечения соблюдения стандартов кодирования и предоставления быстрой обратной связи. Однако Claude испытывал трудности с последовательным применением полных аннотаций типов, иногда пытаясь отключить проверки вместо исправления основных проблем. Это подчеркнуло необходимость надежных циклов обратной связи и человеческого вмешательства для поддержания инженерных ограничений с помощью ИИ-агентов.Эксперимент показал, что одновременная работа нескольких проверщиков типов (ty, pyrefly, zuban) была быстрее, чем один прогон MyPy, и обеспечивала дополнительное обнаружение проблем. Новая экосистема проверки типов выглядит многообещающей, но требует дальнейших экспериментов для строгой конфигурации. Проект послужил успешной демонстрацией продвижения разработки с помощью ИИ, а настоящим призом стали полученные знания о его возможностях и ограничениях.