Опасности Copilot и ChatGPT для качества кода: реальный опыт C# разработчика | AiManual
AiManual Logo Ai / Manual.
05 Фев 2026 Новости

Страхи разработчика: почему Copilot и ChatGPT опасны для качества кода (личный опыт C#)

Личный опыт разработчика на C# о том, как GitHub Copilot и ChatGPT портят качество кода. Почему ИИ-ассистенты опасны и как их использовать без вреда.

Я пишу на C# уже десять лет. Помню времена, когда я знал каждый метод в своем проекте, каждый класс, каждую зависимость. Теперь я просто набираю // Создай класс для работы с базой данных, и Copilot выдает мне три варианта. Удобно? Да. Страшно? Еще бы.

Код, который никто не понимает

В прошлом месяце я получил задачу пофиксить баг в микросервисе, который сам же и написал полгода назад. Открываю файл. Смотрю на 200 строк кода. И понимаю, что не понимаю ни черта.

Это был мой код. В смысле, я его написал. Вернее, не совсем. Я написал промпт, а Copilot написал код. Я его проглядел, проверил, что работает, и закоммитил. Теперь я сижу и пытаюсь разобраться в логике, которую придумала нейросеть.

Самый страшный момент для разработчика — когда ты не понимаешь собственный код. С Copilot это случается все чаще.

Идеальные промпты рождают уродливый код

Кажется логичным: чем точнее промпт, тем лучше код. На практике получается иначе. Я даю Copilot идеально сформулированную задачу:

// Создай асинхронный метод для загрузки пользователей из базы с пагинацией, фильтрацией по статусу и сортировкой по дате регистрации. Используй Entity Framework Core 8, паттерн репозиторий и cancellation token.

Copilot выдает красивый, работающий код. Прямо как в учебнике. Проблема в том, что этот код идеален в вакууме. Он не учитывает:

  • Нашу специфичную архитектуру с CQRS
  • То, что мы отказались от чистых репозиториев год назад
  • Медленные запросы в продовой базе
  • То, что метод будет вызываться из трех разных мест с разными требованиями

Код работает. Проходит код-ревью. Потом оказывается, что он создает N+1 проблему при загрузке связанных сущностей. Мы фиксим. Добавляем инклюды. Теперь метод возвращает слишком много данных. Оптимизируем. И так по кругу.

ChatGPT как источник легаси на стадии зародыша

Пока Copilot работает в реальном времени, ChatGPT — это фабрика по производству технического долга. Я обращаюсь к GPT-4.5 (самой новой версии на февраль 2026) с вопросом про реализацию кэширования в Redis.

Нейросеть выдает мне решение с использованием устаревшего пакета StackExchange.Redis 2.6, хотя у нас в проекте уже 3.0. Она предлагает паттерн, который мы отказались использовать после того, как он сломался при нагрузке в 10к RPS.

Но код выглядит профессионально. В нем есть обработка ошибок, логирование, даже тесты. Я копирую его, немного адаптирую под наш стиль. И вуаля — в проекте появляется новый слой легаси, которому еще нет и дня.

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

Рутинные задачи, которые перестали быть рутинными

Раньше написать DTO-класс было делом пяти минут. Теперь это квест:

  1. Начинаешь писать класс
  2. Copilot предлагает десять свойств, половина из которых не нужна
  3. Поправляешь
  4. Copilot добавляет методы ToString(), Equals(), GetHashCode() с неправильной реализацией
  5. Удаляешь лишнее
  6. Copilot предлагает добавить валидацию через атрибуты, которые мы не используем

Время на задачу увеличилось втрое. Вместо автоматизации получили ручное управление полуавтоматической системой, которая постоянно пытается увести в сторону.

Кодревью превращается в детектив

Раньше на кодревью я смотрел на логику, архитектуру, ошибки. Теперь я играю в "найди откуда этот код".

Вижу странный паттерн — спрашиваю: "Откуда это?" Ответ: "Copilot предложил". Вижу избыточную абстракцию — "Зачем этот интерфейс?" — "ChatGPT сказал, что так правильно".

Коллега из команды фронтенда недавно признался: он больше не может отличить свой код от сгенерированного. Прошлой неделей он три часа искал баг, который оказался в методе, написанном Copilot месяц назад. Метод работал, но делал что-то странное с датами. Странное, но работающее.

Это напоминает историю про фанатские галлюцинации Copilot, где нейросеть начала придумывать несуществующих людей. Только в нашем случае она придумывает несуществующие требования к коду.

Иллюзия продуктивности

Метрики говорят, что я пишу в два раза больше кода. Коммитов стало больше. Строк кода в день — заоблачные цифры. Но количество багов в проде не уменьшилось. Время на фиксы увеличилось.

Потому что раньше баг возникал из-за моей ошибки. Я ее понимал, знал, где искать. Теперь баг возникает из-за того, что Copilot неправильно понял контекст. Или ChatGPT предложил решение, которое не работает в нашем случае. Или я сам не до конца проверил сгенерированный код.

Показатель До Copilot С Copilot
Строк кода в день 150-200 400-500
Время на кодревью (минут) 15-20 30-40
Багфиксы в неделю 2-3 4-6
"Чей это код?" вопросов 0 5-7

Когда ИИ полезен (и не очень)

После года экспериментов я выработал свои правила. Copilot отлично справляется с:

  • Генерацией шаблонного кода (геттеры, сеттеры, простые конструкторы)
  • Написанием юнит-тестов для тривиальных методов
  • Подсказками по синтаксису (особенно когда работаешь с новым фреймворком)
  • Рефакторингом простых конструкций (переименование переменных, извлечение методов)

Абсолютно бесполезен (и даже вреден) в:

  • Архитектурных решениях
  • Работе с бизнес-логикой
  • Оптимизации сложных запросов
  • Выборе паттернов проектирования
  • Безопасности (никогда не доверяй ИИ код с авторизацией или валидацией!)

Кстати, о безопасности. Помните историю про Copilot-фишинг? Это был лишь один из многих случаев, когда слепое доверие к ИИ приводило к проблемам.

Что будет дальше?

Я не противник технологий. GPT-5.2 Codex и другие модели становятся умнее с каждым месяцем. Но я заметил парадокс: чем умнее становится ИИ, тем глупее чувствую себя я.

Раньше, чтобы разобраться в новой технологии, я читал документацию, смотрел примеры, экспериментировал. Теперь я спрашиваю у ChatGPT. Получаю ответ. Копирую код. Он работает. Я не понимаю, как. Но работает же.

Через полгода появляется баг. Я возвращаюсь к этому коду. Не понимаю его. Снова спрашиваю у ChatGPT. Получаю патч. Применяю. Цикл замыкается.

ИИ-ассистенты не заменят разработчиков. Но они могут превратить разработчиков в операторов ИИ, которые не понимают, что происходит под капотом.

Мой совет после года работы с Copilot и ChatGPT: используй их как продвинутый автодополнение, а не как соавтора. Если код слишком сложный для того, чтобы написать его самому, он точно слишком сложный для того, чтобы доверить его нейросети.

И да, перед тем как скопировать сгенерированный код, спроси себя: "А смогу ли я объяснить этот код через полгода на кодревью?" Если ответ "нет" — пиши сам. Это больно, медленно, зато потом не придется разбираться в том, что придумала машина.

P.S. Эту статью я писал сам. Без помощи ИИ. Потому что не хочу, чтобы через полгода я перечитывал ее и думал: "И кто это написал такой бред?"