avva: (Default)
[personal profile] avva
Программисты, как вы используете языковые модели в своей работе и как не используете? Какие модели или дополнительные фреймворки предпочитаете? Что работает хорошо, а что плохо, сейчас, в апреле 2025?

Дам несколько ссылок по теме, и потом расскажу про себя.

1. https://www.anthropic.com/engineering/claude-code-best-practices - Антропик рассказывают, как они рекомендуют пользоваться Клодом для написания кода, и что у них работает лучше, а что хуже.

2. https://crawshaw.io/blog/programming-with-llms
3. https://simonwillison.net/2025/Mar/11/using-llms-for-code/

Два полезных поста от программистов о том, как они используют LLMы. Был еще отличный пост 1-2 месяца назад, где автор показывал подробно, как он пытался использовать LLM для небольшой игры на Lisp-like языке, и было хорошо видно, с чем модель справляется хуже, но я потерял эту ссылку. Если найду или кто-то мне кинет, добавлю сюда.

Мои личные мнения и предпочтения:

Последний год я пишу 80% времени на Питоне и 20% на C++. Я не использую autocomplete, и не пользуюсь специализированными средами (Cursor, GitHub Copilot, Claude Code). Мое использование моделей можно выделить в три категории:

- во-первых, и это наверное 70% использования, я задаю вопросы о том, какие есть библиотеки для тех или иных нужд и какая между ними разница; какой API следует использовать для чего-то, и почему; какой алгоритм может подойти к такой-то задаче; как объяснить такой-то баг или такую-то непонятную ошибку. Очень важно стараться задавать модели вопросы так, чтобы ответ можно было легко проверить, или как альтернатива, чтобы в случае неправильного ответа это стало быстро понятно (fail fast).

- реже (20% случаев), я прошу LLM сгенерировать мне кусок кода, делающий что-то конкретное и четко определенное, используя API, который я знаю нетвердо. Например, мне нужно нарисовать график в pyplot или изменить существующий график неким образом, который мне не очевидно, как сделать. Я не помню API pyplot и никогда его подробно не изучал, так что плохо понимаю, чего в нем добиться легко, а чего очень тяжело. Если LLM справляется с задачей, я настаиваю на том, чтобы внимательно прочитать и понять каждую строчку кода перед тем, как внести в репозиторий.

- совсем редко (5% случаев), я прошу LLM написать мне небольшую законченную программу, которая делает что-то четко определенное. Скажем, я хочу нарисовать определенные фигуры в 3D-пространстве, и менять параметры их размеров и расположения с помощью каких-то кнопок в графическом интерфейсе. Или мне нужно использовать библиотеки доступа к файлам нейронных моделей ONNX, чтобы внести определенные изменения в интерфейс уже готовой нейронной сети. В обоих случаях я понимаю, что надо сделать, и нет никаких особых сложностей, но разбираться в незнакомых API и писать весь код, склеивающий их вместе, заняло бы часы, вместо 5-10 минут на то, чтобы сформулировать запрос, получить программу, проверить, что она работает и внимательно прочитать код. Я не пользуюсь моделями таким образом для центральной функциональности моего продукта, только для программ "на периферии": что-то конвертировать, визуализировать, быстро изменить что-то в структурированных файлах итд.

Date: 2025-04-23 08:59 pm (UTC)
vak: (Default)
From: [personal profile] vak
Уже некоторое время (примерно год) использую языковые модели в программистской работе. Сначала gemini.google.com, а сейчас переключился на grok.com. Неплохо помогает. Обычно прошу написать небольшой кусок кода, решающий определенную конкретную задачу. Иногда мне лениво вспоминать какую-то стандартную функцию языка, и я прошу ИИ показать работающий пример. Генерить юнит-тесты вручную скучно, а ИИ делает это прекрасно. К примеру, мне нужно было проверить приоритеты бинарных операций в компиляторе.

https://github.com/besm6/b-compiler/blob/master/besm6/tests/precedence_test.cpp

Date: 2025-04-24 09:41 am (UTC)
gegmopo4: (Default)
From: [personal profile] gegmopo4

Использую мало, в основном то, что относится у вас ко второй категории. Прошу "дай примеры использования того-то и того-то" или "напиши тесты для того-то и того-то", потом уточняю (например, если тестируемая функция блокирует вывод, то очевидно, что нужно использовать потоки, а не самоблокироваться в основном потоке). В большинстве случаев код можно сразу выбрасывать, но иногда можно использовать как шаблон для написания своих тестов. На доводку кода может уйти несколько дней, поэтому не уверен, что много экономлю.

January 2026

S M T W T F S
    1 2 3
4 5 6 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 7th, 2026 03:42 pm
Powered by Dreamwidth Studios