Найти в Дзене
Цифровая Переплавка

Хороший код как побочный эффект ИИ: почему нас наконец-то приучили к дисциплине

Парадокс последних лет в том, что искусственный интеллект не упрощает разработку — он делает её строже. И в этом есть ирония: десятилетиями мы знали, каким должен быть «хороший код», но почти всегда откладывали это «на потом». Теперь же ИИ просто отказывается работать в бардаке. Статья Steve Krenzel на платформе Bits of Logic формулирует это максимально жёстко:
если у тебя нет тестов, типов и чёткой структуры — AI-агент не помощник, а катастрофа на автопилоте. Люди умеют компенсировать хаос интуицией. Мы догадываемся, «что тут имелось в виду», игнорируем странные имена функций и держим половину логики в голове. ИИ так не умеет. 🤖 Контекст для него — это код
Если кодовая база противоречива, агент начинает усиливать эти противоречия. 🧹 Эффект «робота-пылесоса»
ИИ честно двигается вперёд и размазывает проблему по всей системе, если его не ограничить. 🧭 Без правил нет направления
LLM не знает, что «красиво» или «правильно» — только что разрешено, а что запрещено. В итоге AI не прощает т
Оглавление

Парадокс последних лет в том, что искусственный интеллект не упрощает разработку — он делает её строже. И в этом есть ирония: десятилетиями мы знали, каким должен быть «хороший код», но почти всегда откладывали это «на потом». Теперь же ИИ просто отказывается работать в бардаке.

Статья Steve Krenzel на платформе Bits of Logic формулирует это максимально жёстко:
если у тебя нет тестов, типов и чёткой структуры — AI-агент не помощник, а катастрофа на автопилоте.

Почему ИИ ненавидит плохой код

Люди умеют компенсировать хаос интуицией. Мы догадываемся, «что тут имелось в виду», игнорируем странные имена функций и держим половину логики в голове. ИИ так не умеет.

🤖 Контекст для него — это код
Если кодовая база противоречива, агент начинает усиливать эти противоречия.

🧹 Эффект «робота-пылесоса»
ИИ честно двигается вперёд и размазывает проблему по всей системе, если его не ограничить.

🧭 Без правил нет направления
LLM не знает, что «красиво» или «правильно» — только что разрешено, а что запрещено.

В итоге AI не прощает технический долг. Он его капитализирует с процентами.

💯 Почему 100% покрытие тестами вдруг стало разумным

Самая спорная, но ключевая идея — обязательное полное покрытие тестами. Не как KPI, а как интерфейс взаимодействия с агентом.

🧪 Тест — это доказательство поведения
ИИ не может «почувствовать», что код правильный. Он должен это исполнить.

📋 Отчёт о покрытии = список дел
Нет философии «это важнее, а это нет». Если строка появилась — она тестируется.

🧠 Резкое упрощение рассуждений
При полном покрытии исчезают догадки: каждая строка либо твоя ошибка, либо осознанный выбор.

Интересно, что в таком режиме удерживать 100% проще, чем держаться около 90% — исчезает зона неопределённости.

Файловая структура как API для ИИ

Для агента твоя кодовая база — это не архитектура в голове, а файловая система.

📁 Имена файлов — это семантика
billing/invoices/compute.ts говорит больше, чем utils/helpers.ts.

🧩 Маленькие файлы — большой выигрыш
ИИ часто усечёт большой файл. Маленький он загрузит целиком и не потеряет контекст.

🔍 Навигация через структуру
LLM ищет, читает и сопоставляет. Структура — это его карта местности.

По сути, ты проектируешь не только код, но и среду обитания для искусственного коллеги.

Эфемерные среды: разработка как оркестрация

С агентами исчезает идея «одной dev-среды».

🐝 Ты больше не пчела, ты пасечник
Несколько агентов работают параллельно, ты лишь направляешь.

Среда должна подниматься мгновенно
Если запуск тестов занимает полчаса — агент становится бесполезным.

🧱 Полная изоляция
Git worktrees, разные порты, базы, кэши — всё должно работать одновременно без конфликтов.

Это уже не «локальная разработка», а управление мини-фабрикой изменений.

Типы как ограничение свободы ИИ

ИИ опасен не потому, что он ошибается, а потому что у него слишком много вариантов.

🧬 Типы сужают пространство поиска
Невозможные состояния просто не компилируются.

📖 Типы = живая документация
UserId, WorkspaceSlug, SignedWebhookPayload — это подсказки для модели.

🔒 Инварианты на уровне БД
PostgreSQL, схемы, триггеры — последний рубеж защиты от «креативных» агентов.

Типизация превращает ИИ из фантазёра в аккуратного исполнителя.

Личное мнение: ИИ — это не магия, а аудит

Самое важное следствие всей этой истории — ИИ не улучшает код сам по себе.

🧠 Он безжалостно выявляет слабые места
📉 Усиливает плохие решения
📈 И радикально масштабирует хорошие

ИИ стал тем самым внешним давлением, которого не хватало, чтобы мы наконец перестали откладывать лучшие практики (best practices). Не из любви к качеству, а из желания, чтобы система вообще была управляемой.

Хороший код больше не эстетика.
Хороший код — это
инфраструктура для мышления, человеческого и машинного.

Итог

ИИ не заменил разработчиков.
Он просто лишил нас оправданий.

И, возможно, это лучшее, что с нами случалось.

Источники

🔗 Основная статья:
https://bits.logic.inc/p/ai-is-forcing-us-to-write-good-code

🔗 Bits of Logic:
https://bits.logic.inc

Если ИИ и заставляет нас что-то делать — то, к счастью, писать код так, как мы всегда знали, что надо.