GitHub Copilot выдаёт устаревший код почему и как это лечить

Рейтинг: 52.5% · 43 голосов
Программирование с искусственным интеллектом: Claude Code, Cursor, GitHub Copilot, agentic coding, протокол MCP, генерация и ревью кода, автоматизация рабочего процесса разработчика.
Ответить
Аватара пользователя
infern
Сообщения: 87
Зарегистрирован: 11 май 2026, 10:23

GitHub Copilot выдаёт устаревший код почему и как это лечить

Сообщение infern »

Замечаю что Copilot регулярно предлагает код с устаревшими паттернами — например суёт var вместо const, предлагает колбэки там где давно принято использовать async/await, иногда вставляет deprecated методы из старых версий библиотек. Проект на Node.js 20, в package.json всё современное. Как вы справляетесь с этим?
👍1 ❤️ 🔥 😄1 🤔
✔ Лучший ответ выбран автором и совпадает с автоматическим подбором — Bill2001
Это известная проблема — обучающие данные Copilot включают огромное количество старого кода с GitHub, и модель воспроизводит старые паттерны особенно в боilerplate-коде. Частичное решение — добавить в корень проекта файл .github/copilot-instructions.md с явными инструкциями: используй ES2022+, предпочитай async/await, не используй var. Copilot читает этот файл как системный промпт.
Перейти к ответу →
Аватара пользователя
Bill2001
Сообщения: 86
Зарегистрирован: 16 май 2026, 20:24

Re: GitHub Copilot выдаёт устаревший код почему и как это лечить

Сообщение Bill2001 »

✔ Лучший ответ — выбран автором и совпадает с авто-подбором
Это известная проблема — обучающие данные Copilot включают огромное количество старого кода с GitHub, и модель воспроизводит старые паттерны особенно в боilerplate-коде. Частичное решение — добавить в корень проекта файл .github/copilot-instructions.md с явными инструкциями: используй ES2022+, предпочитай async/await, не используй var. Copilot читает этот файл как системный промпт.
👍 ❤️ 🔥1 😄 🤔
Аватара пользователя
misha12
Сообщения: 67
Зарегистрирован: 11 май 2026, 04:09

Re: GitHub Copilot выдаёт устаревший код почему и как это лечить

Сообщение misha12 »

Ещё помогает держать открытыми в редакторе современные файлы из проекта. Copilot учитывает контекст открытых вкладок, и если рядом есть код с современными паттернами — он их и воспроизводит. Закрой все вкладки со старым кодом если они у тебя открыты.
👍2 ❤️ 🔥1 😄 🤔
Аватара пользователя
Bauerle
Сообщения: 4
Зарегистрирован: 22 май 2026, 07:40

Re: GitHub Copilot выдаёт устаревший код почему и как это лечить

Сообщение Bauerle »

Я добавил в ESLint правила no-var и prefer-const и настроил lint-staged. Copilot продолжает предлагать всякое, но хотя бы в коммит не попадает мусор. Плюс Copilot иногда сам видит ошибки линтера в редакторе и переформулирует предложение.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
chuckger
Сообщения: 6
Зарегистрирован: 13 май 2026, 21:21

Re: GitHub Copilot выдаёт устаревший код почему и как это лечить

Сообщение chuckger »

На самом деле проблема глубже — Copilot не знает какие версии библиотек у тебя в проекте. Если пишешь React, он может предлагать Class Components потому что их в интернете больше чем хуков. Помогает явно написать комментарий над местом где хочешь саджест — типа // используя React hooks, functional component — и тогда саджест будет релевантнее.
👍 ❤️ 🔥 😄1 🤔
Аватара пользователя
juniorstack
Сообщения: 62
Зарегистрирован: 12 май 2026, 12:04

Re: GitHub Copilot выдаёт устаревший код почему и как это лечить

Сообщение juniorstack »

Copilot Chat в этом плане лучше чем инлайн-саджесты — можно спросить "напиши это с async/await и современным синтаксисом" и он не халтурит. Инлайн completion просто экстраполирует по ближайшему контексту, там контроля меньше.
👍1 ❤️ 🔥 😄1 🤔1
Аватара пользователя
alansmit
Сообщения: 84
Зарегистрирован: 13 май 2026, 00:35

Re: GitHub Copilot выдаёт устаревший код почему и как это лечить

Сообщение alansmit »

Ещё один рабочий способ — добавить в начало каждого файла JSDoc-комментарий вида /* @engine node20, ES2022+ */. Это дёшево, но Copilot берёт ближайший контекст при генерации и такая подсказка реально смещает выбор паттернов. Проверял на проекте с Express 4 — callback-hell в саджестах почти пропал.
👍 ❤️1 🔥1 😄 🤔
Аватара пользователя
add007
Сообщения: 15
Зарегистрирован: 11 май 2026, 11:11

Re: GitHub Copilot выдаёт устаревший код почему и как это лечить

Сообщение add007 »

@chuckger, хороший совет про открытые вкладки, но добавлю нюанс: работает только если файлы в пределах окна контекста Copilot, а это грубо говоря ~20 открытых вкладок при нормальном размере файлов. Если держишь 40+ вкладок открытыми — старые просто вылетают из окна и перестают влиять. Лучше специально держать открытыми 2-3 образцовых файла и закрыть всё ненужное.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
asyncpro
Сообщения: 17
Зарегистрирован: 15 май 2026, 10:37

Re: GitHub Copilot выдаёт устаревший код почему и как это лечить

Сообщение asyncpro »

@alansmit, именно про это и спотыкаются все. Я ещё добавляю версию в комментарий над импортом: // React 18, hooks only, no class components — и сразу в той же строке начинаю писать функциональный компонент. Это жёстко фиксирует контекст прямо у места генерации. Copilot буквально видит «хуки» в последних токенах и не лезет в Class Component территорию.
👍1 ❤️1 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «AI-ассистированная разработка»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость