ИИ в разработке: что мы автоматизировали, а что оставили людям
ИИ-ассистенты действительно ускоряют разработку, но не там, где ожидают. Рассказываем, что мы им доверяем, а что проверяем вручную — и почему.

Про ИИ-ассистентов в разработке говорят двумя способами: либо «программисты больше не нужны», либо «это игрушка, генерирующая мусор». Мы пользуемся ими каждый день в коммерческих проектах и видим, что верно ни то, ни другое. Ниже — конкретика без обеих крайностей.
Где ускорение реальное
Наибольший выигрыш даёт не написание сложной логики, а работа с шаблонным кодом и с незнакомыми областями. Ассистент экономит время там, где решение известно, но требует набора большого объёма текста или чтения документации.
| Тип задачи | Ускорение | Требуется проверка |
|---|---|---|
| Шаблонный код, формы, типы | В 2–3 раза | Минимальная |
| Тесты по готовой функции | В 2 раза | Средняя: проверяем полноту случаев |
| Разбор незнакомой библиотеки | В 2–4 раза | Обязательно сверяем с документацией |
| Миграции и рефакторинг по шаблону | В 1,5–2 раза | Средняя |
| Бизнес-логика предметной области | Почти нет | Полная |
| Оптимизация запросов и производительности | Нет | Полная, нужны замеры |
Три проблемы, которые пришлось решать
Устаревшие API
Модель обучена на коде, которому в среднем год-два. Она уверенно предлагает подходы, которые в текущей версии фреймворка уже не работают. Особенно заметно на быстро меняющихся частях — например, в асинхронных параметрах маршрутов Next.js.
// Устаревший вариант: в Next.js 15+ так больше не работает
export default function Page({ params }: { params: { slug: string } }) {
const post = getPost(params.slug)
return <Article post={post} />
}
// Актуальный вариант: params стал асинхронным
export default async function Page({
params,
}: {
params: Promise<{ slug: string }>
}) {
const { slug } = await params
const post = getPost(slug)
return <Article post={post} />
}Правдоподобно неверная логика
Сгенерированный код часто выглядит опрятно и проходит поверхностный просмотр, но содержит ошибку в граничном случае: неучтённый пустой массив, неверное сравнение дат по часовым поясам, потерянная проверка прав. Такие ошибки дороже явных — они доходят до продакшена.
Пропущенные проверки безопасности
Самая опасная категория. Ассистент пишет обработчик, который делает ровно то, что просили, и не добавляет проверку, о которой не спросили. Пример ниже — реальный шаблон ошибки, которую мы отлавливаем на ревью регулярно.
// Сгенерированный вариант: делает, что просили, и открывает чужие данные
export async function getOrder(orderId: string) {
return db.orders.findUnique({ where: { id: orderId } })
}
// Что нужно: запрос всегда ограничен текущим пользователем
export async function getOrder(orderId: string) {
const session = await auth()
if (!session) throw new Error("Требуется авторизация")
return db.orders.findUnique({
where: {
id: orderId,
// Без этого условия любой авторизованный пользователь
// получит доступ к заказу по номеру
userId: session.user.id,
},
})
}Как мы выстроили работу
- Ассистент пишет черновик, разработчик отвечает за результат. Ответственность не делится с инструментом.
- Всё, что касается прав доступа, платежей и персональных данных, пишется и проверяется вручную.
- Каждое обращение к внешнему API сверяется с текущей документацией, а не принимается на веру.
- Сгенерированные тесты проверяются на полноту: модель охотно пишет проверки удачного пути и забывает про ошибочные.
- Ревью проходит весь код одинаково, независимо от того, кто его набрал.
Ассистент ускоряет набор кода, но не думает за инженера. Ответственность за то, что попадёт в продакшен, остаётся на человеке целиком.
Что это значит для заказчика
Сроки по типовым задачам действительно сократились — там, где раньше уходила неделя на настройку инфраструктуры и шаблонов, теперь два-три дня. Но сроки по задачам, требующим понимания вашего бизнеса, не изменились: их по-прежнему определяют интервью, согласования и проверка гипотез, а не скорость набора кода.
Если подрядчик обещает сократить проект в пять раз «потому что мы используем ИИ», это повод задать вопрос, за счёт какого именно этапа. Обычно за счёт того, который потом придётся переделывать.
Частые вопросы
- Ускоряют ли ИИ-ассистенты разработку на самом деле?
- Да, но неравномерно. Шаблонный код, типы, тесты и разбор незнакомых библиотек ускоряются в два-три раза. Бизнес-логика предметной области и оптимизация производительности практически не ускоряются, поскольку требуют понимания контекста конкретного проекта.
- Какие риски у кода, написанного ИИ?
- Три основных: обращение к устаревшим версиям API, правдоподобно выглядящая ошибка в граничном случае и пропущенные проверки безопасности — например, отсутствие ограничения запроса по владельцу записи. Поэтому весь код проходит обычное ревью, а участки с правами доступа и платежами пишутся вручную.
- Сокращает ли использование ИИ стоимость разработки?
- Стоимость типовых этапов действительно снижается. Но сроки задач, требующих понимания бизнеса заказчика, определяются интервью, согласованиями и проверкой гипотез, а не скоростью набора кода. Обещание сократить проект в разы «за счёт ИИ» обычно означает экономию на этапе, который придётся переделывать.
Похожая задача в вашем проекте?
Разберём вашу ситуацию и пришлём оценку по этапам — без обязательств и общих слов.
Обсудить задачу

