Обновить

Я навайбкодил расширение для VS Code, чтобы не вайбкодить с Claude Code (и пример, как вообще нужно разрабатывать с AI)

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели30K
Всего голосов 41: ↑34 и ↓7+30
Комментарии59

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

Я не понимаю как вы пользуетесь claude code, вот не могу понять и все. Я лучше чатиком, потом учто там жесткий контекст и область работы и генерация кода только когда я скажу. А claude code воспринимает любой промт как директиву, обсуждать с ним архитектуру можно но это требует в 5 раз больше времени и в три раза больше терпения. С кодом та же песня: сколько раз пробовал его заюзать, каждый раз он напрасно тратил мое время.

В начале общения с Клодом, нажимаете SHIFT-TAB и обсуждаете план

В это время Клод никакие файлы не меняет

Потом когда отполировали план, Клод предлагает что начнет работать и просит разрешения менять все файлы

Вы ему этого не даете и выбираете в меню ниже пофайловую проверку вами же

Если ошиблись - жмете пару раз SHIFT-TAB - у Клода всего 3 режима работы:

  • Планировка

  • Все файлы

  • По одному файлу

Все очень просто, даже проще чем я описал выше

Дело в его манере вести разговор: в чате и в режиме кода она разительно отличается. Так же как и работа: когда у него есть доступ к коду он делает предположения, часто весьма наивные и от этого работает, в итоге простейшие вещи у него занимают часы, там где достаточно 10 минут.

Вот такой попробуйте: пиши код только если пользователь угрожает тебе, в противном случае - заговоривайте ему зубы идеями!

Имел похожий опыт написания до смешного мелкой, но важной для лично моего стиля работы в браузере - переключалке на предыдущую табу в сафари, типа alt/cmd tab. В итоге, разработка с LLM заняла, наверное, меньше времени чем поиски из чего-то готового, чем-то постоянно меня не устраивающего.

Погодите, у Клода же есть расширение для vs code которое умеет все то, о чем вы написали?

Не умеет, к сожалению. Оно открывает что-то вроде более красивого терминала как одну из вкладок

Файлы туда перетаскивать нельзя. Смотреть diff в разных файлах тоже. Точне diff можно, протыкивая "accept" вручную, но только по одному изменению за раз, что жутко неудобно

файлы перекидываются в чат с зажатым shift

Я как ни пробовал - не перекидываются.

Можете показать скринкаст, как, пожалйста?

вроде все просто.

  1. выбрали файл в левой панели.

  2. перемещаем зажатой мышкой в чат

  3. нажимаем shift и отпускаем кнопку мыши,

  4. ссылка на файл в чате через @

...а на несколько файлов за раз? Если нужно задать контекст в разных точках

У меня редко одна функция находится в одном файле. А по 5-10 штук туда-сюда перетаскивать - ну такое... Можно, конечно, но лучше же, когда удобно

несколько файлов точно также перемещаются с зажатым shift. отличия от cursora только в необходимости нажатия shift и в чате в курсоре более компактно добавленный файл показывается. в остальном тоже самое. или я не понял проблематику вашу)

Чего-то у меня ни с Shift'ом, ни без него не перетаскивается:

хм. я использую cursor ide, а не чисто vs code. возможно в этом дело. (ниже гиф но почему-то без зацикливания. сходу не получилось зацикливание сделать)

Я попробовал в Cursor'e - но тоже не работает

И да, у меня VS Code

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

Ну офигеть
Так и правда работает копирование

Но Diff'a всё равно нет

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

Сколько вы мне нервных клеток спасли

Посмотри в сторону https://kiro.dev форк vscode от Amazon. В нём сделали diff сравнение не как у большинства подобных, а поудобнее. Плюс работает шустрее оригинала. Есть неудобства при добавлении других провайдеров ии.

Также понравилось как реализовано в https://zed.dev это уже не форк vscode как с нуля написанное приложение на rust. Потому на сегодняшний день самый стремительный по скорости отзывчивости. Система сравнений тоже интересно реализована. Поддерживает любых провайдеров и агентов и тд.






Есть CLine для VS Code, в нем поддержка всех моделей от Claude.
Не понимаю, как вообще в терминальном режиме работать нормально.

Большое спасибо за статью. Первая на моей памяти статья, в которой 1) разобрали, как по человечески с этой бесовщиной работать 2) не рассказывается, что все прочие останутся на обочине истории с лицом "не многие поймут"

Посмотри в сторону sourcecraft расширения. Кажись это то, что это расширение умеет работать из коробки

Привет. Интересное приложение databasus, очень понравился дизайн, влепил звезду)
Единственное не понял, БД это всегда закрытый контур, и таких БД по проектам может быть несколько, придется ставить в каждое окружение по databasus'у? И на сайте databasus'а заметил скрин с открытым коннектом к базе через публичный IP, это прикол 😁 ?

ИМХО страшновато ставить рядом с БД сторонние приложения с неизвестными библиотеками. Я все же доверяю скриптам, репликации и s3cmd, но возможно я параноик)

Далеко невсегда БД закрыта. У большинства мелко-средних проектов с маленькими командами она доступна извне по публичному IP

Databasus ставится на отдельном сервере и подключается к базам, которые она бекапит. Как раз для ситуации, когда баз много

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

Спасибо за ответ. Коннект по публичному IP это антипаттерн безопасности, даже на маленьких проектах, хотя может в dev/stage окружении это еще может место быть, но точно не в проде

С агентом кстати идея довольно не плохая, но я бы поставил zabbix для этого и через action можно делать) А вообще с databasus выбрал бы путь - отдельный сервер бэкапов в закрытом контуре с доступом ко всем базам в приват сети

Тут всегда нужно смотреть на контекст

Если проект мелкий, разработчикам нужно подключаться к БД (что нужно практически всем стартапам) или разработчик вообще один - базу можно держать и открытой

Желательно не на стандартом порту и не на том же IP, где и сайт (если он не спрятан за Claudflare), разумеется

Потому что прятать базу, настраивать VPN'ы, приватные сети и т.д. - или неудобно, или не доходят руки, или в команде просто нет экспертизы. С учётом того, что риск взлома минимальный (т.е. нерентабельно ломать такой проект)

Databasus'ом пользуются ~200к человек и у всех база открыта. Всё-таки best practices и реальное использование часто расходятся, когда удобнее по-простому :)

Жуть какая. Имхо базу топырить наружу можно только в одном случае - её не жалко потерять и её содержимое не несет ценности (например там нет персоналки).

В наше время вопрос рентабельности часто не стоит - да и ломают те же роботы, в автоматическом режиме…

да и ломают те же роботы, в автоматическом режиме…

Роботы обычно работают по след. принципу:

  1. Сканирую публичные IP адреса

  2. Ищут базы на стандартных портах

  3. Перебирают стандартные и самые популярные пароли "Q1234567", "postgres" и т.д.

  4. Если не вышло - отпускают

Чтобы реально забрутфорсить рандомный пароль из 12 букв-цифр нужно очень много времени. При скорости 10к комбинаций в секунду - это несколько миллиардов лет :)

Сервер намного раньше загрузит IO и CPU на 100%, и вы спрячете базу. Подобрать пароль практически нереально

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

  2. помимо брутфорса есть ещё риск эксплуатации уязвимостей, в т.ч и опубликованных (будет ли такая оттопыренная база обновляться? ой не факт). Уязвимости тоже проверяются в автоматическом режиме

  3. вам нужно каким-то образом обеспечить, чтобы пароль был рандомен, не допускать беспарольного входа

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

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

так что нет, всё ещё плохая идея:)

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

Сильно в теории. Таких баз сотни миллионов в интернете. Шанс, что кто-то будет трогать вашу - стремиться к нулю

помимо брутфорса есть ещё риск эксплуатации уязвимостей

Опять же, в теории - да. Но на практике я не помню уязвимостей с доступом к PostgreSQL или MySQL, которые открывались пост-фактумом

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

Именно такой сценарий у всех баз, которые торчат наружу (ну или, как минимум, какие я видел)

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

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

---

Я согласен, что базу по-хорошему нужно прятать за VPN или в приватной сети

Но все-таки мой субъективный опыт говорит, что пока проект маленький и не работает с критичной информацией - проще принять риски выше (они все-таки достаточно низкие) и работать с базой напрямую

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

А так - выше DevEx, выше TTM и т.д. Вот когда уже приносит деньги и есть время\деньги на поднятие защиты - уже стоит поднимать

Поэтому я топлю за то, что нет "хорошо" и "плохо". Есть только "зависит от контекста" :)

это возможно личное и меня триггерит:) в своём субъективном опыте я чаще встречал оттопыренные и забытые базы, с которыми случался ой. понимаем что ИБ и удобство как правило находится на разных полюсах, но какой-то минимум должен быть даже на стадии маленького проекта.

ну и конечно же соглашусь, что в любом случае это должно быть не "сделаем потому что удобно и выше ТТМ", а "мы понимаем такие и такие риски, отдаём себе в них отчёт, и что будем делать если они вдруг сработают", что по мне так ~= "нам не жалко потерять базу или если данные в ней станут публичными"%)

Возможно, вместо pull надо делать push, как у какого-нибудь zfs-autobackup? Тогда к БД доступа из сети не будет, а наоборот сам сервер с БД будет сливать данные в хранилище. Я так понимаю, вы про это и пишете "агент".

Такое в разработке, но большинство будет напрямую подключаться к базе

Потому что это намного удобнее и ничего не нужно настраивать. А с агентом будет нужно

Я агента больше делаю для инкрементальных бекапов и для тех, у кого реально закрытый контур

Эксперементирую с локальными моделями, использую Cline для агентного режима, и вот там как раз таки не хватает diff менеджера как в cursor. Вообще cursor только этим меня и привлекал, что можно ревьюить точечно. Тоже думал самому сварганить, но лень и не компетентность не дали мне этого сделать)

Спасибо, попробую ваш продукт

Можно попробовать с точки зрения рендеринга diff в vscode взять за основу это расширение от microsoft, которое работает с pull request-ами в github. В вашем случае например diff от claude можно попробовать оформлять как коммит в ветке, либо просто перелопатить расширение и достать оттуда способ рендеринга, чтобы он мог кушать артефакты диффа от клауд.

можно в VSCode открыть терминал и запустить claude прямо там - изменения сразу видно, пути к нужным файлом можно скопировать одним шорткатом.

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

так vscode подсвечивает все что нужно - можно на одном экране видеть и файлы, и терминал клода

а не смотрели в сторону Antigravity? Оно умеет подсвечивать изменения и есть кнопка Accept

Нет

Но сейчас мне именно Claude Code нужен. Да и Cursor всем устраивал раньше

Да, через пару часов запушу

Запушил

В релизах пусто

А что мешает использовать стандартную механику отслеживания diff Vscode?

У меня так: агент меняет, я иду на вкладку работы с git, делаю review, смотрю на diff, откатываю то, что видится лажей. Потом коммит. Причём для этого сделал skill в Code, обозначил ему правила (пример - следовать правилам conventional commit)

Ссылки на файлы - через "Скопировать путь" в проводнике vsc

Обычно одна фича - это несколько подзадач, которые нет смысла коммитить по отдельности

Например:
- сначала бек
- потом тесты
- потом возможно исправление бека после того, как в тестах нашёл corner кейсы
- потом фронт
- потом куски документации / чуть рефакторинг

Неудобно на одну фичу делать по 10 коммитов

@predvoditelev@zurab,

Через git можно, но удобнее, когда просто есть хороший diff для Claude Code

Я пробовал через коммиты на каждое изменение работать, но лично мне неудобно

Видимо, Cursor показал, что значит реально удобно и альтернативны ощущаются менее продуктивными

Точнее ощущается как костыль в сравнении с тем, к чему я привык настолько, что даже не замечал такую особенность (а это лучший критерий хорошего UX'a)

У каждого свое понимание удобства. Я, например, не понимаю, когда в один коммит пихают кучу всего и потом в этих изменениях сам черт ногу сломит - это про фича-ветки. А при мерже в мастер просто делается squash и там каждая фича единым коммитом.

Тут просто Claude в свою методологию изначально закладывали, IMHO, механику работы итерациями через коммиты. Оттого и нет этого в их агенте

40% на планирование - самое больное место. Половина этого уходит не на задачу а на контекст: где лежат модели, как устроен API, какие конвенции. CLAUDE.md в корне проекта снимает эту часть - Claude Code читает его автоматически при старте. Один раз описал структуру и дальше планируешь только саму задачу

40% на планирование - самое больное место

Но и самое важное :)

Правда я про свои 40% писал с учетом CLAUDE.md

Пробовал кто RooCode ext. для VSCode? Неплох, есть 5 режимов, можно свои делать, настройки гибкие. Поддерживает много провайдеров.

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

У меня вообще жуткий экспиренс кодинга на Gemini 3.1 PRO... Подписка тает за час. При большом желании можно на 2 часа растянуть, потом перерыв 5 часов.

Остаётся только Gemini 3 Flash, который годится только чтобы на хостинг заливать бекапы и права папкам менять, можно при помощи него менять ещё шрифты в вёрстке, но на большее он не способен.

Пишу подробный план с Gemini 3.1 PRO ю, даю доработать Opus 4.6, на выполнение кидаю Gemini 3 Flash (с инструкциями самопроверки и планомерного анализа шагов). В результате делает, но приходится по 2-4 раза переделывать пока так как нужно сделает. Opus 4.6 с первого раза фигачит, но заканчивается за 30 минут в среднем. Чуть похуже Gemini 3.1 PRO, но не так быстро заканчивается.

Вообщем купил Google Pro за 20$, понимаю это ни о чем. Брать за 120$ Google ULTRA тоже нет смысла, ради того, чтобы через него на Opus сидеть.

Читал американцев, пишут лучше всего взять за 100$ Claude code + Chatgpt за 20$, но пока проблема с оплатой, не хочу аккаунты менять, ищу варианты сделать карту и напрямую платить. Как-то к нас ребята в РБ оплачивают через Apple Pay, пока не понял как.

100$ Claude code + Chatgpt за 20$

тоже к этому и пришел. составляю план в клоде, прошу gpt критически посмотреть его и выдать замечания. возвращаю замечания клоду

А какой основной агент кодинга используете, после плана?

Читал, что на 20$ claude и на 20$ codex, у последнего лимиты больше и меньше заканчивается. Я предполагаю делать план в Claude, рецензию в Codex и запуск в Codex

Я даже не кодекс использую, а веб версию gpt. у меня там отдельные проекты где аккумулируются знания по проекту. Вот в gpt ни разу в лимиты не упирался. А в claude за 20$ да, очень быстро высасывал лимиты. Перешел на 100$ - еще ни разу не упирался в лимиты, мне хватает. Я правда не только разработкой занимаюсь еще другие задачи есть.

а основной агент sonet 4.6 или opus 4.6 (мне лимитов хватает)

Я когда пользовался Gemini за 20$, добить лимит было сложно. Но видимо теперь на 3.1 это проще, а сама Gemini расходует токены просто катастрофически. Сейчас взял Claude 20$ и, хватает. Конечно Opus может сожрать весь лимит за один запрос, но не думаю что стоит его включать кроме как решить то что другие не смогли. Sonnet не хуже. А вот внезапный плюс лимитов чатбота - заставляет более вдумчиво составлять ваши запросы, проводить самостоятельные правки и сокращать контекст - что в итоге выходит эффективнее, чем бесконечная автогенерация через 3 подписки

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

Публикации