Добавить в корзинуПозвонить
Найти в Дзене
Охота на математику

Диалектика вайбкодинга

1. Тезис: Чистый кодинг (ручное написание кода)
Состояние: Человек пишет код построчно, следуя своей интуиции, стандартам языка и локальным соглашениям.
Движущее противоречие:
Субъект хочет точности и контроля.
Оглавление

1. Тезис: Чистый кодинг (ручное написание кода)

Состояние: Человек пишет код построчно, следуя своей интуиции, стандартам языка и локальным соглашениям.
Движущее противоречие:

  • Субъект хочет точности и контроля.
  • Средство (ручной ввод) медленное, требует полного погружения в синтаксис, не масштабируется.
  • Результат — жёсткие, детерминированные программы, но высокая когнитивная нагрузка и низкая скорость итераций.

Проблема для ИИ-агентов: Текстовые абстракции (комментарии, документация, устные задания) легко интерпретируются неоднозначно, требуют много токенов и не гарантируют соблюдения стиля.

2. Антитезис: Вайбкодинг (чистое намерение, код «по настроению»)

Состояние: Человек или агент описывает желаемое поведение высокоуровневыми промптами, почти без синтаксиса — «сделай круто», «добавь фичу, ну ты понял».
Движущее противоречие:

  • Скорость генерации резко растёт.
  • Качество структуры и безопасность падают: код полон дублирования, уязвимостей, неконсистентных стилей, непроверенных зависимостей.
  • Агенты ИИ плодят ошибки, потому что у них нет строгого, машинно-читаемого контракта.

Проявление в вашем контексте:
Токенов тратится мало на промпт, но много на исправление хаоса. Агенты интерпретируют «вайб» по-своему, и каждый раз генерируют разный стиль.

3. Синтез: Код как спецификация для агентов (мета-архитектура)

Состояние: Переход обратно к коду, но не как к целевому продукту, а как к правилам игры для самих агентов.

Как это работает:

  1. Код с хорошей архитектурой становится носителем инструкций — вместо тысяч токенов текстового описания «используй фабричный метод, не забывай валидацию, форматируй отступами 2 пробела».
  2. Примеры правил стиля и безопасности кодируются непосредственно в структуре проекта:
    Шаблоны модулей с уже расставленными // @security: sanitize(input)
    Конфиги линтеров и тайп-чеков как исполняемый код
    Типы в TypeScript, трейты в Rust, контракты в Python (@overload, Protocol) — это сухие, однозначные указания агентам.
    Архитектурные границы (например, слой domain не импортирует infrastructure) зафиксированы в коде, а не в документе «best practices.txt».
  3. ИИ-агенты не читают длинные инструкции — они читают и анализируют код:
    Видят функцию validate_user_input и автоматически используют её перед всеми изменениями ввода.
    Видят стиль форматирования в существующих файлах и копируют его.
    Видят запрещённые паттерны (например, eval, exec, raw SQL конкатенацию) через статические анализаторы, встроенные в пайплайн.

Почему это уменьшает количество токенов и ошибок:

  • Токены: Один раз написанный архитектурный скелет (например, 200 строк кода) заменяет 5000 токенов промпта на каждую задачу. Агент получает только задачу «добавь метод в сервис UserService» — остальное он выводит из окружения.
  • Ошибки: Код не двусмысленен. Если в проекте везде используется Result-тип (Ok(value) | Err(error)), агент вряд ли сгенерирует исключение. Если папка tests/ содержит примеры с pytest, агент напишет тест в этом же стиле.

Минуя текстовые абстракции:

Вы не пишете «Агент, пожалуйста, убедись, что ты следуешь принципам SOLID и никогда не используй глобальные переменные».
Вы просто кладёте в src/core/di/container.py код внедрения зависимостей, и агент
вынужден его использовать, иначе его код не скомпилируется/не пройдёт тесты.

Итоговый цикл в диалектической спирали:

  1. Кодинг (тезис) → точный, но медленный, полон текстовых инструкций.
  2. Вайбкодинг (антитезис) → быстрый, но опасный, нет контракта.
  3. Код как архитектурное правило для агентов (синтез)
    Скорость как у вайбкодинга (агенты пишут быстро)
    Надёжность как у кодинга (архитектура и стиль зашиты в исполняемые примеры)
    Минимум токенов и ошибок → потому что код говорит сам за себя, без посредника в виде прозы.

Фактически, вы приходите к self-hosting правилам:

Код становится мета-указанием для агентов, как им безопасно и единообразно улучшать этот же код.