Обновить

ИИ замедляет разработчиков? Почему промты съедают столько же времени, сколько код, и что с этим делать

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели11K
Всего голосов 17: ↑11 и ↓6+9
Комментарии16

Комментарии 16

Расскажите, пожалуйста, подробно про вашу CLI-утилиту для создания тестов

Ответим в отдельной статье, спасибо за вопрос.

Узнаваемо, понимаемо. Сначала идешь к ИИшке и думаешь, что ну все, наконец можно не работать) а потом понимаешь, что ты просто стал менеджером для очередного разработчика...

Фундаментальное ограничение LLM в роли программиста заключается в том, что она реконструирует паттерны, тогда как программирование требует активного формирования структуры. Программист мыслит через жёсткую семантику и инварианты — правила, которые должны сохраняться при любом преобразовании. LLM же порождает код как интерференцию вероятностей, воспроизводя знакомые формы без доступа к их причинной логике. Простое увеличение контекста не решает проблему: с ростом длины кода количество возможных интерференций растёт экспоненциально, тогда как число логически корректных решений остаётся исчезающе малым. Максимизируя локальную правдоподобность, модель неизбежно теряет верный путь в этом комбинаторном поле. Поэтому LLM может имитировать код, но не создавать архитектуру.

Т.е. нет веры (ожидания), что количество при последовательном росте перейдет в качество?

Два варианта

- увеличение объема паттернов, внесённых в нейросеть, позволит генерировать большее количество правильных кусков кода. Но принципиальная проблема стохастичности останется. То есть при удлинении и усложнении текста, LLM будет продолжать случайным правдоподобным кодом. И усложнение нейросети будет как раз негативно влиять, за счёт увеличения количества вариантов.

- Костыли rag, CoT и т.д... позволят отложить момент возникновения ошибки... Но не более.

Если когда то сделают семантический компьютер над ллм, то тогда всё будет ок.

Ну, в общем, промт — новая форма документации, только без гарантий, что её кто-то прочитает, в том числе ИИшка. Как и все остальные документации.

частенько делаю наоборот - пишу код и получаю от ИванИваныча документацию которую, каюсь, все равно приходиться править

У нас Copilot реально ускорил работу — но только после того, как выделили отдельного человека, который пишет промты и обновляет библиотеку примеров. То есть мы наняли человека, чтобы он объяснял ИИ, как не тупить 😅

Как измеряли ускорение?

Вот код от ИИ по самому первому вашему запросу, как образец, с первой команды:

/** * Метод для получения пользователя по ID * @param userId - идентификатор пользователя * @returns Promise с данными пользователя или null, если пользователь не найден */
async getUserById(userId: number): Promise {  try {    // В реальной реализации здесь будет запрос к базе данных или API    const user = await database.users.findUnique({      where: {        id: userId      }    });        return user;  } catch (error) {    console.error(`Ошибка при получении пользователя с ID ${userId}:`, error);    return null;  }
}
// Интерфейс пользователя (должен быть определен в другом месте проекта)
interface User {  id: number;  name: string;  email: string;  createdAt: Date;  updatedAt: Date;
}
// Пример использования:
// const user = await getUserById(123);

Альтернативная версия с использованием fetch для REST API:

async getUserById(userId: number): Promise {  try {    const response = await fetch(`/api/users/${userId}`);        if (!response.ok) {      throw new Error(`HTTP error! status: ${response.status}`);    }        const user: User = await response.json();    return user;  } catch (error) {    console.error(`Ошибка при получении пользователя с ID ${userId}:`, error);    return null;  }
}

[Факты] Метод включает обработку ошибок и типизацию
[Факты] Возвращает Promise с возможным null значением
[Факты] Содержит JSDoc комментарии для документации

Был похожий кейс: сделали внутренний бот для генерации unit-тестов через OpenAI API. Через неделю разработчики начали писать тесты вручную — оказалось, что объяснить ИИ структуру моков сложнее, чем просто дописать руками. После этого ввели шаблоны промтов, стало хоть чуть-чуть лучше.

Junie очень хорошо тесты пишет и даже проверяет, что они запускаются, я был впечатлен. Но ей надо вычитать все зависимости, что занимает время и ресурсы

Llm это не "почти" stateless, это полностью stateless.

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

Если вы обучите ллм прямо на вашем коде - будет делать как вы.

ИИ не освобождает от ответственности за поддержание порядка. Если порядка нет - он создаст свой, который посчитает нужным. Всё эти хождения по граблям почему? Сколько раз этот вопрос был задан без ответа? Ответ прост - любые хождения по граблям - последствия отсутствия порядка.

На диалог ушло 5–10 минут. Разработчик написал бы финальный вариант за две

Там 19 строчек кода, за 2 минуты их можно было написать ,только в одном случае: если разработчик пишет подобные куски кода каждый день и уже зашил их в сниппет.

В среднем же, опытный разраб пишет 50-100 строк кода за рабочий день. Т.е. даже беря по верхней границе, он напишет эти же 19 строк за 1.5 часа, но никак не за 2 минуты. Иначе он бы писал более 4000 строк кода в день! Таких программистов не существует в природе.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
surf.ru
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия