14 марта, 23:40. Я закрываю ноутбук и понимаю, что снова не сдал модуль авторизации клиенту из Нидерландов. Уже третья задержка за месяц.
$800 штрафов по контракту. И клиент, с которым я работал полгода, пишет что "пересматривает сотрудничество".
---
Я считал себя нормальным разработчиком. Пишу код, сдаю проекты, зарабатываю в долларах пока большинство получает гривны. Всё окей.
Но был один паттерн, который я не замечал.
Каждый раз, когда приходила новая задача, я садился и начинал писать с нуля. JWT-авторизация - окей, я это делал раньше, но каждый раз заново гуглил edge cases, заново думал про структуру middleware, заново писал обработку ошибок. Не потому что не умел. Просто... так делал всегда.
На модуль авторизации для того нидерландского клиента я потратил два вечера. Стандартная задача: регистрация, логин, refresh токены, роли пользователей. Ничего экзотического.
Восемь часов моего времени.
Я не считал это проблемой, потому что не платил деньгами. Я платил временем - и именно поэтому не видел цену. Время казалось бесплатным. Оно никуда не списывалось, никакой строчки в расходах не было.
В ту ночь, 14 марта, уже почти в полночь, я от отчаяния написал в Claude один абзац. Четыре предложения. Просто описал задачу так, как объяснил бы её другому разработчику: стек, что должно работать, какие роли нужны, какой формат токенов хочет клиент.
Через 22 минуты у меня был рабочий код.
Не набросок. Не "вот идея как сделать". Рабочий код с обработкой ошибок, комментариями и структурой, которую я бы сам писал до двух ночи.
Я сидел и смотрел на экран с одной мыслью: я идиот.
Я собрал промпты по этой теме в PDF. Забери бесплатно: https://t.me/airozov_bot
---
Большинство людей, которые говорят "я пробовал ChatGPT для кода, не помогло" - просто писали плохие промпты. Это не защита AI, это факт.
Я несколько месяцев использовал Claude как умный Google. Писал "напиши JWT авторизацию на Node.js" и получал шаблонный код, который потом всё равно нужно было переписывать под проект. Это не экономия времени, это дополнительная работа.
Потом я понял три вещи, которые изменили результат.
Первое - контекст стека и ограничений. Плохой промпт: "напиши авторизацию". Хороший промпт: "Node.js 20, Express, PostgreSQL через Prisma, клиент требует refresh токены в httpOnly cookies, access токен живёт 15 минут, нужны роли admin и user, вот структура моей таблицы users: [вставляю схему]". Разница в результате - как между советом незнакомца и кодом разработчика, который три дня работал с этим проектом.
Второе - описывать поведение, а не технологию. Не "напиши middleware для авторизации", а "напиши middleware, которое проверяет токен, если токен истёк - возвращает 401 с флагом tokenExpired: true, если токен невалидный - возвращает 403, если всё окей - добавляет userId и role в req.user". Claude понимает намерение и пишет именно то поведение, которое мне нужно, а не то, что считает стандартным.
Третье - итерации, а не один запрос. Я перестал ждать идеального кода с первого промпта. Первый промпт даёт 70-80% результата. Дальше я пишу: "этот обработчик ошибок не учитывает случай когда Prisma кидает PrismaClientKnownRequestError, добавь" или "перепиши эту функцию, она слишком длинная, раздели на два метода". Три-четыре итерации - и код лучше, чем я написал бы сам, потому что я обычно не рефакторю то, что "и так работает".
По времени: модуль, который я раньше писал 6-8 часов, теперь занимает 1.5-2 часа. Это не магия. Это просто то, что должно было быть с самого начала.
За март после того ночного эксперимента я закрыл четыре таких модуля. Два для нидерландского клиента, которого едва не потерял. Один для нового заказа из Германии на $340. Один для своего инструмента, который давно откладывал.
---
Я думал, что главная ценность - это скорость. Быстрее писать код, больше успевать, больше зарабатывать.
Это правда, но не главная правда.
Главное - это то, что я наконец-то начал думать об архитектуре, а не о синтаксисе.
Когда я писал код руками, 60% энергии уходило на механику: как называется этот метод в Prisma, как правильно типизировать этот объект в TypeScript, как обработать этот конкретный edge case. Это не мышление, это ремесло. Полезное, но не то, за что клиенты платят больше.
Теперь я трачу время на то, что реально важно: как разбить систему на модули, где будут узкие места при нагрузке, что нужно клиенту на самом деле а не то что он написал в ТЗ. Claude пишет механику, я думаю про систему.
Ещё один момент, который удивил: качество кода выросло. Не потому что Claude пишет идеально. А потому что у меня появилось время на code review собственного кода. Раньше я сдавал то, что написал, потому что уже не мог на это смотреть после трёх часов работы. Теперь я смотрю на сгенерированный код свежим взглядом и вижу проблемы, которые раньше пропускал.
Клиент из Нидерландов, кстати, остался. Я сдал два следующих модуля раньше дедлайна. Он написал, что "заметил изменение в темпе". Я не стал объяснять что именно изменилось.
Каждый день разбираю один такой инструмент в Telegram: https://t.me/yevheniirozov
---
Возьми задачу, которую откладываешь потому что "долго писать". Зайди на claude.ai.
Напиши вот в таком формате:
*"Стек: [твой стек]. Задача: [что должно делать]. Ограничения: [требования клиента или проекта]. Структура данных: [вставь схему или интерфейс если есть]. Напиши [конкретный модуль] с обработкой ошибок и комментариями."*
Не жди идеального промпта. Просто опиши задачу так, как объяснил бы её разработчику, который не знает твой проект.
Засеки время.
• [Я потратил 3 месяца, чтобы понять: промпты решают всё](https://telegra.ph/YA-potratil-3-mesyaca-chtoby-ponyat-prompty-reshayut-vsyo-05-10)
• [Как я вышел на 50 000 ₽ в месяц с помощью нейросетей](https://telegra.ph/Kak-ya-vyshel-na-50-000--v-mesyac-s-pomoshchyu-nejrosetej-05-10)
• [Вы всё ещё тратите 3 часа на тексты вручную?](https://telegra.ph/Vy-vsyo-eshchyo-tratite-3-chasa-na-teksty-vruchnuyu-05-10)
Ты всё ещё пишешь код вручную, когда AI сделает это за тебя?
Ты всё ещё пишешь код вручную, когда AI сделает это за тебя?