AI Coder 🦾
132 subscribers
68 photos
1 video
63 links
О программировании с использованием ИИ от Senior Fullstack

Также пилю свой продукт с ИИ и пишу об этом тут - @build_saas_in_public
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
7 раз Отмерь, 1 раз Отрежь

Дано: Claude 4 + Cursor + проект на Go.

Задача: реализовать фичу, которая затрагивает вообще всё — схему базы данных, SQL запросы, локализацию, конфигурацию, бизнес-логику и так далее. Сможем сделать через автономного агента? Учитывая, что это не локальный прототип, а запущенный в прод с живыми юзерами продукт?

Pure Manual <—> Vibe Coding

Лично я под "вайб-кодингом" подразумеваю подход, когда ты не понимаешь, как работает твой код.

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

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

Только ситхи всё возводят в абсолют — пренебрегать genAI инструментами и делать все самостоятельно ровно в той же степени неправильно, как и заниматься pure вайб-кодингом. Если, конечно, речь не идет об обучении или разработке "прототипа на коленке" который мы сто процентов потом выкинем.

ИИ не должен принимать решений

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

Это не значит, что вы не можете их обсудить с ИИ! Если вы не уверены в дизайне, обязательно сделайте это. Главное убедитесь, что построили богатый контекст, чтобы агент действительно понимал суть вашего вопроса относительно вашего проекта.

Я настоятельно советую это делать, потому что условный Claude 4 может подсветить не мало потенциальных проблем, особенно, если его об этом попросить.

Отмеряем 7 раз

Продолжаю раскрывать секрет. Если ИИ не должен принимать решений, их должны принимать вы. Следовательно, вы должны понимать, как все работает и как все должно работать.

Точнее у вас должно быть решение, которое вы предлагаете ИИ, чтобы он его "прожарил", и это решение вы должны осознавать полностью, вплоть до отдельных переменных.

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

Далее, внимание (!), вы требуете чтобы ИИ не модифицировал код (я прям капсом это пишу, потому что Claude 4 любит настырничать), а просто ответил вам, что он думает, все ли ему ясно, не видит ли он проблем.

Вы повторяете это N раз пока не будет достигнуто полное понимание между вами и агентом. ИИ может находить потенциальные проблемы, подсвечивать какие-то правки, о которых вы забыли, или находить в задаче неоднозначности, предлагая вам решения на выбор.

Отрезаем один раз

Когда понимание, наконец, достигнуто, мы просим ИИ (внимание!), нет, не внести правки, а сгенерировать детальный промпт, который мы вставим в новое окно чата. Мы прямо так и говорим — контекстное окно приближается к лимиту, сделай мне промпт, но не упусти ничего важного.

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

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

Кстати, пока я писал этот пост, Claude 4 имплементит штуку со криншотов. На прикрепленной gif то как строился промпт, а в комментах скрин — кусочек получившегося промпта.
2
Bonus Tip

Недавно писал, как правильно кодить большие фичи с ИИ. Прочтите, если еще не, а потом вернитесь. Есть еще один совет, это как вишенка на торте к тому, что уже было описано

Перед тем как начать ревьюить изменения (что делать при таком подходе, разумеется, необходимо), откройте новый чат, и попросите Claude 4 проревьюить изменения за вас.

Скажите, мол, ИИ сделал изменения, вот его промпт, вот изменения что он сделал (mention git changes). После того как ИИ подтвердит, что все ок, начинайте ревьюить сами.

P.S. — Прикладываю размер ИИ правок. Я сперва протестировал изменения локально, всё работает идеально. Полез ревьюить, реализация на 5+, я бы не сделал лучше, всё как я хотел. Сейчас буду катить на прод.
3
1
Галерея Промптов в ИИ браузере Dia

Помните, я писал, что пересел с Arc на его наследник, так как сам Arc прекращают поддерживать? Так вот, все это время я сидел на Dia, мое резюме будет в конце поста, а сейчас я расскажу про их последний апдейт, где они выкатили галлерею skills.

https://www.diabrowser.com/skills

Skills в Dia это возможность сохранить промпт под короткий алиас и вызвать его в чате. На вход в ИИ идет этот промпт + контекст страницы + ваше сообщение. Так, например, можно просить ЛЛМ сделать TLDR; страницы (или письма, если вы смотрите на письмо) на русском, или генерировать ответы. Кейсов множество. Я, кстати, скилами не пользуюсь вообще, и вроде я среди юзеров Dia такой не один, судя по постам на Reddit. Посмотрим, изменится ли это теперь.

Что касается самого Dia... Это не Arc, но и не голый Chrome. Я скучаю по вертикальным вкладкам со спейсами, как и все аркоебы, волею судеб пересевшие на Dia, но мне нравится ИИ чат. Он работает хорошо и я пользуюсь им достаточно часто. Было бы интересно попробовать Comet от Perplexity, но мотивации недостаточно. Миграция между браузерами слишком запарный процесс. Transaction Cost у операции высокий.

P.S. Для тех, кому интересна продуктовая аналитика — конкретно тот кейс, что я рассматривал в своем первом посте про Dia, q&a с продуктовой аналитикой, теперь работает из коробки в Posthog. То есть если вы используете Posthog для метрик, то там теперь есть встроенный чат под названием Max AI, и я советую юзать его, а не Dia, потому что у Dia доступ к содержимому вкладки, а у Max под капотом RAG в базу с вашими событиями. У него тупо больше контекста. F context is king, как известно.
Allowlist в Cursor

То ли не видел, то ли недавно добавили.

Раньше в Cursor чате с Agent mode было 2 опции: либо каждую команду надо апрувить, либо разрешить все и пустить тем самым на самотек.

Лично мне не очень хотелось узреть условный rm -rf / в результате гениального мыслительного хода Claude и я ревьюил каждую команду. Когда агент пилит большую многослойную фичу, получается, что надо микроменеджерить, иначе спустя 5-10 минут ты альт-табнешься обратно в чат и увидишь, что все это время машина ждала тебя, кожанный ты боттлнек.

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

Осторожно: тут есть нюанс, команды в UNIX чейнятся через разными способами (&&, |, >, » и так далее), и кажется что курсор при проверке прав смотрит только на первую команду, а все остальное парсит как ее аргументы. То есть разрешив cd в теории вы разрешаете также cd / && rm -rf ./ но это не точно. Ну я включил, посмотрим, не поминайте лихом.

UPD: кажется курсор таки понимает && и запросил у меня разрешение на cd ... && templ ..., формулируя это как "добавить templ в белый список?"
3
Как я Фикшу Баг в Cursor

TLDR; На проде баг, из-за которого платный юзер продукта получает ошибку, вместо корректной обработки своего запроса.

Раньше, я полез бы в логи, а затем начал бы думать, в чем дело. Сейчас я делаю вот как:

— Открываю чат в курсоре
— Прикрепляю скрин с багом
— Описываю проблему вкратце
— Прикрепляю логи с прода
— Прикрепляю релевантную строчку из таблицы в БД, чтоб контекст был совсем полным

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

То, что я сделал, называется "построить контекст". По сути, когда вы ставите задачу другому человеку, вы тоже строите контекст.

Кто-то, наверно, может сказать — теперь ИИ и думает за тебя, а не просто код пишет.

Я отвечу так — да, и это хорошо. Я не хочу об этом думать. Я не считаю, что это творческая задача. Я знаю, что могу потратить время и сделать все сам, но зачем? Мое время ограниченно, мне надо распределить мыслетопливо максимально эффективно. Если я могу делегировать ИИ агенту исправление бага, то я обязан это сделать. Любая другая стратегия не будет рациональной, если ваша цель — эффективность.

P.S. — Офигеть, курсор теперь mermaid диаграммы строит в процессе рассуждения О_о

P.S.S. — Claude 4 любит добавлять юнит-тесты, и они даже валидны, но если вам хочется перестраховаться еще сильнее, примените технику ИИ самопроверки
Как строить контекст для ИИ агента в Cursor, основанный на изменениях кода

Уже два человека просили раскрыть мысль про ИИ самопроверку в Cursor получше.

Думаю, я напишу об этом нормальную статью. Кажется, мой поток сознания на эту тему тяжело читается.

Пока статьи нет, расскажу про маленькую фичу в Cursor, которая играет важную роль в вышеприведенной технике. Кажется, не все про эту фичу знают.

1️⃣ Открываем чат с агентом (Cmd+I на маке)

2️⃣ Жмакаем @ собачку и выбираем Git

3️⃣ В открывшейся выпадашке выбираем Branch либо Commit в зависимости от того, что нас интересует (уже закомиченные изменения, или текущие).

Это позволяет в 1 клик построить контекст для агента, основанный на изменениях кода, а не его состоянии. Что необходимо для техники самопроверки.

P.S. — статью напишу, потому что техника реально мощная и, кажется, не все про нее в курсе.
3
В полку ИИ браузеров прибыло

https://strawberrybrowser.com/

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

Я сижу на Dia и у меня недостаточно мотивации пробовать что-то еще, но я прям чувствую, что что-то упускаю. В 2025 браузеры реально могут и должны больше, чем просто chat with your tabs или, прости господи, skills.
1
Все еще пишете commit messages руками? Тогда мы идем к вам!

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

Мое мнение на эту тему такое — гит надо понимать, но лишь основные концепты - ветвление, ребейзинг, слияние. Не надо упарываться в идеальные commit messages, не надо дрочить на красивые графы. Вам даже не обязательно уметь работать с ним через терминал, вот что я думаю. Говорю как человек очень много времени работающий с гитом исключительно в консоли.

Так вот, commit messages. Бывают штуки вроде Conventional Commits и я очень долго им следовал, даже работая один. И вот только недавно до меня дошло — наименования коммитов это своего рода индекс, который позволяет быстрее понять, что в этом комите происходит, не заглядывая в него. Это то же самое, что нейминг сущностей в коде. Вот только код мы читаем постоянно, а как часто мы читаем историю git? Если это большой проект и вас туда комитит человек 5, окей, возможно, но если вас 2-3 или тем более вы один, ну камон. Я в своих пет проектах почти никогда не смотрю историю. Только если я что-то зафакапил, но я редко что-то факаплю, когда весь код принадлежит мне и я его хорошо понимаю и ощущаю.

Короче, советую не париться и генерировать коммиты через ИИ. Он это делает лучше чем многие разрабы которых я видел. Лично я в личных проектах больше никогда не буду писать подписи к коммитам сам.

Тратишь больше времени, чем можно — обоснуй что это необходимо. Я очень редко читаю свои комиты и мне очевидно, что я не должен больше их писать сам. Мне очевидно, что я сделал, но я должен потратить время и сформулировать это. Если машина с этим справляется достаточно хорошо, то отныне она должна делать, всегда.
1
Когда вайбкодишь на максимум 🫨
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Готовимся к собеседованию на позицию software engineer с ChatGPT

Создал кастомный GPT для подготовки к system design интервью. Под капотом промпт с идеальным список тем, которые надо понимать. Идеальный, значит не "все что есть на свете", а то что с максимальной вероятностью могут спросить на собеседовании.
2
Арена Пророков

Возможно, вы слышали про https://www.prophetarena.co/ — это некий аналог polymarket. Модели предсказывают будущее по каким-то вопросам, от погоды до политики. Мне стало интересно, как это работает. А именно, как строится его величество контекст. Часто магия не в самой модели, а в инфраструктуре вокруг нее. Можно взять 2 продукта, у которых под капотом одна и та же нейронка, но один будет казаться тупым, а второй умным.

Вот мне и стало любопытно, что конкретно мы тут тестим? Тестируются знания, что уже внутри моделей? Тестируется фича дип-рисёрча от ChatGPT и его аналогов или билдится готовый контекст своими силами, а уже потом подается на вход нейронкам? Как вы, возможно, догадались, третий вариант самый честный и, конечно, именно он тут и реализован.

Почитать можно у них в блоге, вот TLDR;

В Prophet Arena для каждого события автоматически собираются свежие новости, аналитика и рыночные котировки, которые структурируются в единый контекст: формулировка вопроса, таблица цен, ссылки на источники с краткими описаниями. Этот контекст сохраняется в неизменном виде, чтобы все модели работали с одинаковой информацией и не могли её изменить задним числом.

ИИ-модели получают этот контекст, строят вероятностный прогноз исхода события и объясняют свои решения, ссылаясь на элементы контекста. После наступления результата тот же контекст используется для объективной оценки точности и качества прогноза, а также для анализа, как разные источники влияли на решения моделей.
3
Ну, как посмотреть. Технически, если я не пишу код руками, а генерирую в курсоре, то его пишут llm. Прогноз ведь не говорит, что 90 процентов разработчиков потеряют работу. Но да, даже так, трудно сказать какой процент кода генерируется llm сегодня. Рост точно есть, но какой?
Forwarded from Denis Sexy IT 🤖
6 месяцев назад, CEO антропика говорил, что 90% кода будет писаться LLM уже через 6 месяцев

Кажется, не получилось, ждем новых предсказаний ☕️

Источник
Please open Telegram to view this post
VIEW IN TELEGRAM