Вайб-кодер от нуля до мастера в эпоху AI

Kitobdan iqtiboslar  Вайб-кодер от нуля до мастера в эпоху AI

Toʻliq oʻqish va tinglash
Bepul parcha
Валидируй данные на входе. Прежде чем работать с данными, пришедшими извне (от пользователя, из API), убедись, что они того типа, который ты ожидаешь
Fikr bildirish
Твоя новая работа — быть параноиком. Быть тем самым душным тимлидом для своего AI-стажёра. Прежде чем писать промпт, задай себе вопросы: — А что, если данные придут пустые? — А что, если придёт не тот тип данных (не массив, а объект)? — А что, если сеть упадёт? — А что, если сервер вернёт ошибку? Думать о пограничных случаях, об ошибках, об архитектуре — вот твоя настоящая работа
Fikr bildirish
вайб-кодер не просто чинит, он учится, чтобы не повторять ошибок. Проблема была не только в AI. Проблема была в нашем промпте. Он был слишком наивным. Промпт уровня «Джуниор»: // Напиши функцию, которая получает имена пользователей с API. Промпт уровня «Миддл»: // Напиши асинхронную функцию getUsersNames, которая делает GET-запрос на «…', получает массив пользователей и возвращает новый массив только с их именами. (Это то, что мы написали). А вот как выглядит промпт уровня «Сеньор»: // Напиши асинхронную функцию getUsersNames, которая делает GET-запрос на «…'. Функция должна быть надёжной. Добавь обработку сетевых ошибок с помощью try...catch. Если ответ сервера не успешный (статус не 200—299), функция должна выбрасывать ошибку с текстом статуса. Если в ответе пришёл пустой массив или вообще не массив, функция должна возвращать пустой массив, не падая. В случае любой другой ошибки, она также должна возвращать пустой массив и логировать ошибку в консоль. Чувствуешь разницу? Сеньорский промпт не просто говорит, что делать. Он предвидит проблемы и говорит, как на них реагировать. Он описывает не только «happy path», но и все «sad paths
Fikr bildirish
отать не будет. — editor. quickSuggestions: Эта настройка контролирует появление стандартного окошка с подсказками. Важно, чтобы оно не конфликтовало с Copilot. Настройки «on» для строк и комментов позволяют Copilot лучше «понимать» контекст, когда ты начинаешь писать. Шаг 4. Хоткеи: приручаем зверя окончательно Инструмент бесполезен, если ты не умеешь им пользоваться быстро. Заучи эти хоткеи, как git push. Это твоя новая мышечная память. — Tab — Принять предложение. Твой лучший друг. — Esc — Отклонить предложение. Твой второй лучший друг. — Alt +] (или Option +] на Mac) — Показать следующее предложение. — Alt + [(или Option + [на Mac) — Показать предыдущее предложение. (Многие не знают об этой фиче, а она — золото!) — Ctrl + Enter — Открыть панель с 10 вариантами кода от Copilot. Полезно, когда первая предложенная идея — мусор. — Ctrl + I — Открыть встроенный чат Copilot. Выдели кусок кода, нажми Ctrl+I и напиши «Refactor this» или «Explain this code». Это киллер-фича. Вот и всё, братан. Твой классический, кастомный, но заряженный AI сетап готов. Ты получил мощь нейронки, но оставил за собой полный контроль. Ты сам решаешь, когда нажать на газ, а когда — притормозить и подумать своей головой. Это путь воина, который доверяет своему мечу, но полагается на собственное мастерство. Совет от гаражного кодера: — Поставь Prettier и ESLint. AI часто генерит код с кривым форматированием или не по стайлгайду проекта. Эти два плагина — твои автоматические «чистильщики». Они будут форматировать код (включая сгенерированный) при сохранении. Так в репозитории будет порядок. — Создай файл. copilotignore. Да, такой существует! По аналогии с. gitignore. Создай его в корне проекта и пропиши пути к файлам или папкам, которые Copilot должен игнорировать полностью. Это более тонкий контроль, чем settings. json, и он работает на уровне проекта. Например, туда можно добавить файлы с секретами или ключами API (.env, secrets. js).
Fikr bildirish
Шаг 3. Тонкая настройка: пилим settings. json, чтобы Copilot не бесил Мы не хотим, чтобы турбина работала на полную мощность, когда мы паркуемся. Нам нужен контроль. Открываем настройки в формате JSON. Это наш «мозг» IDE. — Нажми Ctrl+,, чтобы открыть настройки. — В правом верхнем углу есть иконка файла с загнутым уголком. Наведи на неё, появится подсказка «Open Settings (JSON)». Жми. Перед тобой файл settings. json. Всё, что мы сюда напишем, переопределит дефолтные настройки. Вот готовый конфиг, который я использую сам. Копируй и вставляй. Ниже я разложу по полочкам, что каждая строчка делает. { // — - Общие настройки для комфортной работы — — "editor.fontSize»: 14, "editor.fontFamily»: ««Fira Code’, «JetBrains Mono’, «Consolas’, ’monospace’», "editor.fontLigatures»: true, "workbench.colorTheme»: «Default Dark+», // или любая твоя любимая тема "files.autoSave»: «onFocusChange», // — - Начинается магия для COPILOT — — // 1. Главный рубильник. Иногда хочется подумать в тишине. "github.copilot. enable»: { «*»: true, // Включаем для всех языков по умолчанию «plaintext»: false, // Выключаем для обычных текстовых файлов «markdown»: false, // Выключаем для Markdown, чтобы не мешал писать доки «json»: true // Для JSON пусть работает, помогает со скобками }, // 2. Убираем мусор из поля зрения AI. // Copilot учится на открытых файлах. Не давай ему учиться на мусоре. «files. exclude»: { "**/.git»: true, "**/.svn»: true, «**/.hg»: true, «**/CVS»: true, «**/.DS_Store»: true, «**/Thumbs. db»: true, «**/node_modules»: true, // Самое важное! «**/bower_components»: true, «**/dist»: true, «**/build»: true }, «search. exclude»: { «**/node_modules»: true, «**/bower_components»: true, "**/*.code-search»: true }, // 3. Отключаем встроенные подсказки VS Code, чтобы не конфликтовали с Copilot. // Пусть будет один главный по подсказкам. "editor.inlineSuggest. enabled»: true, // 4. Тюним автодополнение, чтобы было удобно. // По умолчанию он может предлагать код, когда ты этого не ждешь. // Эта настройка (увы, пока нет прямого конфига) решается привычкой жать Esc. // Но мы можем настроить, когда автокомплит появляется сам: «editor. quickSuggestions»: { «other»: «on», «comments»: «on», «strings»: «on» }, // 5. Горячая клавиша для чата Copilot. `Ctrl+I` по умолчанию — топ. // Можно переназначить, если мешает. // «keybindings. json» } Разбор полётов по конфигу: — github.copilot. enable: Это твой главный тумблер. Ты можешь точечно отключать Copilot для определённых типов файлов. Я всегда вырубаю его для markdown, потому что когда я пишу документацию или эту книгу, последнее, что мне нужно, — это предложения сгенерить for loop. — files. exclude и search. exclude: Критически важные настройки! Папка node_modules — это чёрная дыра, в которой лежат миллионы файлов. Если AI начнёт их анализировать, твоя IDE превратится в черепаху. Этим конфигом мы говорим: «Братан, вот сюда не смотри, там ничего интересного». — editor.inlineSuggest. enabled: Убедись, что эта опция включена, и
Fikr bildirish