Выход из-за печки
Я уже писал о том, как пробовал использовать Claude 3.5 Sonnet для написания игр. Был обнадёживающий опыт и общее впечатление перспективности использования нейронных сетей в программировании. Но всё замыкалось на том, что у Claude, пожалуй, самые низкие лимиты — по количеству сообщений в чате, размеру и количество чатов. Хотя в бесплатной версии Claude от Anthropic позволяет использовать почти весь свой мощный арсенал, очень быстро натыкаешься на эти самые лимиты.
Теперь, с использованием платной версии, у меня накопился богатый опыт использования Claude 3.5, 3.7, 4.0 Sonnet и Opus 4.1 для программирования. Имеется полное представление о том, в чём Клод хорош, а в чём — не очень.
Да, Claude произносится именно как «Клод». А не как «Клауд», «Клауде» или «Клоде». Так его называют исключительно люди, плохо знающие английский. Как «Клауд» произносится слово cloud («Облако»).
Озвучиваю выводы, к которым пришёл.
Claude не идеален
Работа с кодом
Много работаю с Claude для копирайтинга. Считаю его лучшим писателем, который очень внимателен к деталям, не допускает логической путаницы, достаточно просто добиться от него “своего” (вашего) стиля письма, умеет всё разложить по полочкам. С этим убеждением я начал кодировать с ним. И сразу же эти убеждения начали рушиться.
На какие неприятные особенности Claude я натолкнулся?
Claude делает описки в коде.
Может перепутать логику, если она сложная. Типа: «Субъект дотягивается своей правой ногой до левого уха того, кто ниже него или левой ногой до правого уха того, кто выше» — утрирую.
Claude часто предлагает код с переменными, не определёнными ранее в коде.
Claude может вместо существующего имени переменной использовать его смысловой аналог. Например, вместо image_source — image_url и т. п.
Если вы работаете с несколькими языками программирования, Claude изредка может их путать, особенно при начале нового чата.
Часто повторяет то, что уже прозвучало в предыдущих сообщениях.
Claude может отвлекаться. Был такой случай. Вернулись к остановленному чату, в котором обсуждался код для решения двух вопросов. Даю задание:— Вот здесь два момента, проанализируй и скажи, почему реализация момента 1 перестала работать?— По моменту 1 нужна дополнительная информация. А по моменту 2 почти ничего нет.— Забудь про вопрос 2. Вот тебе информация по вопросу 1.
— Момент 2 можно использовать вот для того-то и того-то.
И почти всё сообщение было о том, что меня сейчас не интересует.
Структура типичного ответа Claude
Подтверждение от нейросети, что она приступила к задаче (следует описание того, что она собирается реализовать).
Сам код с комментариями.
Итог — сделано то-то и то-то.
Преимущества примененного подхода.
Наведение красоты
Claude очень часто сам добавляет визуальные плюшки, вопросы и информацию, которая нужна только для отладки, дорисовывает красоту. Получается раздувание кода на ровном месте.
Инициатива. Улучшательство
Генерит код когда его не просишь. В большинстве случаев это оказывается лишним. Но занимает время на то, чтобы это понять. Особенно неудобно, когда инициатива Claude идёт не в том направлении, где находится решение проблемы.
Пример улучшательства:
Настроил работу с загрузкой и некоторой обработкой одного файла. Нужно было просто расширить это на список файлов и добавить навигацию по нему.
Claude предложил код:
Кнопки Вперед и Назад по списку — то, что надо.
А далее добавил то, что мне абсолютно не нужно на данном этапе:
Счетчик файлов, с его выводом на экран
Кликабельность для всех строк списка
Индикатор загрузки файла
Вместо списка — папку, из которой открывалось выпадающее меню с этим списком
Опцию Посмотреть все файлы сразу
Помимо выбора строки списка мышью — навигацию с кнопками
Вы уже поняли, насколько увеличился бы размер кода из-за ненужной мне сейчас функциональности!
Claude часто в процессе обсуждения предлагает фрагменты кода для реализации того, как это сделать. А затем — хочешь получить полный код? Если всё дело в том, чтобы изменить одну-две строки, то просто меняйте их сами.
А ещё я очень часто, чтобы не заменять одну большую функцию (или даже модуль) кодом, предлагаемым Claude (слишком много мест, куда потенциально может вкрасться ошибка), пишу — дай мне только изменения и покажи место, где это находится. Так я могу видеть, что же конкретно меняется и насколько это похоже на правду. Да ещё и сам учишься при этом.
Бывают и противоположные случаи — было столько изменений и я не уверен, что правильно всё вставил в код, пишу — дай полный код такой-то функции.
Пререкания
Иногда доходит до смешного, если не сказать раздражающего. Даю Claude запрос: при таких-то ограничениях, напиши код для того-то. Отвечает: «Это затруднительно, потому что это условие противоречит вашим намерениям. Я советую вот такой-то код.» Где он увидел мои намерения? Claude начинает генерить и пытаться доказать мою неправоту.
И переубедить его бывает трудно. Claude генерит новый код и пытается показать мне, что он прав. Правда, сразу же сдаётся, если как аргумент можно просто показать картинку.
Интересно, «поведение» Claude бывает совершенно разным. То воспринимаешь его как заинтересованного и участливого помощника, который позволяет себе даже какие-то «эмоциональные» вспышки, часто хвалит, если я советую принципиально новый подход для выхода из тупика. То он представляется как сухой и безучастный раб.
Или такая ситуация: бьёмся вместе с Claude над решением какой-то проблемы. Не выходит. Уже вижу, что всё, что Claude предлагает — это отмазка и тоже не поможет. Он уже обречённо советует совершенно иной подход. Но если начать новый чат, вы можете встретить совершенно другого Клода, который с чистого листа проанализирует ситуацию и найдёт решение!
DRY — Do not Repeat Yourself (не повторяй себя)
Хотя Claude при любом удобном случае ссылается на этот DRY принцип (не повторять аналогичные куски кода в разных местах), сам часто его нарушает.
Пример: создана и отлажена функция. Хочу добавить туда или возвратить из неё новую переменную. Так вместо того, чтобы вставить одну строчку в уже существующий код, Claude, чаще всего, предложит новую функции, во всём идентичную старой, но с одной-двумя добавленными строками.
Затыкание дырок (кусочное, заплаточное программирование)
После постановки задачи Claude быстро генерит код. Если что-то работает не так, как ожидалось (или в случае ошибки в логике), Claude быстро предоставит исправление (заткнёт дырку). Если в этом исправлении тоже что-то вас не устраивает, Клод предложит исправление к исправлению. И так до бесконечности. А ведь очень часто достаточно просто остановиться и посмотреть на начало проблемы. Вы можете увидеть, что вместо десятков и сотен добавленных строк можно обойтись несколькими. Или чуть изменить подход.
При генерации кода Claude часто не видит общей картинки. Зато прекрасно понимает нюансы при обсуждении каких-то подходов.
Зацикленность или тупик
Верные признаки того, что Claude не может найти решения.
1) Claude после долгих попыток решить проблему время от времени советует принципиально новый подход.
2) Claude предлагает новые, более простые варианты. Можно не заметить, что эти варианты заведомо не решают проблемы. Скорее всего, это будет постепенный возврат к первоначальной проблемной версии, с которой начинали!
3) Был такой случай, когда присутствовала явная ошибка в логике, и Claude предлагал какой-то код для исправления. Я особо не вникал поначалу. Но когда увидел, что мы не можем проблемку решить, вник. И увидел — он раз за разом пытался решить логическое несоответствие изменением цвета кнопки!
4) Когда совсем нет идей о причинах возникновения ошибки (и, соответственно, о путях решения) Claude время от времени ищет виновника в ошибках округления. А чаще предлагает задержки, таймауты. Так как я много работаю с React, где время отработки того или иного процесса может иметь значение, в ряде случаев Claude оказывается прав.
Но если вы уверены, что ошибка в логике, просто настаивайте на своём — смотри не таймауты, а логику!
5) Claude предлагает только код для отладки — даже у него не осталось вариантов, кроме как смотреть, как изменяются значения переменных.
Двойственность таких подходов: с одной стороны упрощение, вплоть до выхолащивания сути. С другой — усложнение, разрастание объёма кода. Кусочное решение мелких возникающих проблемок, с уходом от первоначально верного направления.
Важно вовремя понять, что вы в тупике и лучшее, что можно посоветовать — взять паузу.
Совсем недавний случай
Мы с Sonnet уверенно шли к созданию достаточно непростого приложения: парсинг сайта с API и многочисленными endpoints. Само приложение было с FastAPI, т. е. фактически имело 2 сервера, backend и frontend. В конце пути, нужно было разместить его на VPS сервере, на котором уже «жил» Телеграм бот. Наше размещённое приложение упорно не хотело работать. Да ещё и пересечения с ботом были. Долго мы пытались решить задачу, но я уже видел, что Sonnet в тупике и он просто перебирает варианты.
Ладно, взял я паузу. На следующее утро открываю новый чат, но уже с Opus. И делаю ему вводную: вчера мы зашли в тупик (посмотри наш чат). Мне не нужны больше гадания. Давай сделаем всё по best practices: тест юнитов, интеграционный тест. И он составил план. И чётко по нему шёл. И хотя было очень много ошибок и нестыковок, в конце концов, часа за полтора мы все их одолели! Вот что значит, сделать правильный втык!
Как последнее средство, очень сильно помогало следующее. Давал запрос Клоду: создай мне отладочное окно, в котором выводи значения таких и таких переменных ПОШАГОВО. Пошаговый анализ показывал где возникает ошибка. Выручало не раз. Особенно при программировании игрушек.
Неспособность увидеть идею (иногда)
Claude работает в рамках тех знаний, которые в нем заложены. Если не находит решения, лезет в интернет (недавнее классное добавление к его функциональности). Но не всегда может увидеть искомое.
Пример
На 2 дня застряли на решении какого-то момента. Всё, что предлагал Claude, не срабатывало. Я уж было махнул на это рукой. Но отдохнув, решил сам покопаться на сайте stackoverflow. И в одном из чатов нашел идею решения. Показал чат Клоду — дай код технической реализации. И он начал генерить код, перебирая варианты, которые предлагались в чате и которые мы ранее уже отвергли как неудачные. Когда я увидел, что он пробует всё подряд, просто указал ему на верную идею. И проблема была быстро решена. В кодировании, при чёткой постановке задачи — Claude — Мастер!
Особенности Claude как инструмента
Функциональность Projects
В платной версии можно использовать функциональность проектов Projects. Фактически это — это папка, в которую можно поместить общую инструкцию, документы �� проекту и все чаты к нему относящиеся. И это — всё! Все чаты, даже внутри одного проекта, — независимы! Если у вас кончился лимит на длину чата и вы открываете новый, не надейтесь продолжить. Вам придётся заново все объяснять. Это будет уже новый Клод.
И почему-то, даже в рамках чатов одного проекта, Claude далеко не всегда читает инструкцию к проекту. Иногда приходится напоминать.
Новый чат
Текущий чат может неожиданно прерваться из-за превышения лимита на его длину — В этом случае придется начать новый. Если ещё не превышен лимит на общую длину сеанса работы (тогда будет останов на 5 часов). Правда, сейчас за 2-3 сообщения до этого Claude начал давать предупреждение.
Запомните — даже если чат прервался на последней ноте, когда всё было понятно и оставалось чуть-чуть до финиша, в новом чате (даже внутри одного проекта) вы должны воспринимать Claude, как нового собеседника, абсолютно не знакомого с темой. Вам следует дать максимально понятное объяснение проблемы, намеченные ранее пути решения. Предложить ему выдвинуть свою версию. Проще всего скопировать самые информативные фрагменты предыдущих чатов в файл и приложить к сообщению.
Дополнение. Зная о независимости чатов даже внутри одного проекта, недавно при общении с Клодом был удивлён, когда он сказал, что я могу упоминать другие чаты. Я его переспросил: это же не работает! Или это — новая функциональность? Его ответ меня порадовал: внутри одного проекта сейчас можно ссылаться на другие чаты. Главное — чётко указать: либо название чата, либо что-то типа «чат, в котором мы обсуждали то-то». Тогда Claude найдёт нужный чат и прочитает его сообщения.
Функциональность Artifacts
При кодировании код поначалу автоматически генерируется в правом окне Artifacts. Он показывается бегущей строкой (и достаточно медленно). Если код исполняемый, то сразу же запускается сама сгенерированная программа. Вы можете даже с ней поиграться. Очень удобно. Но будьте внимательны — если вы задаёте какие-то исправления, то лучше код копировать — см. дальше про версионность.
Если вас сейчас не интересует, как визуально отрабатывает программа (вы в середине разработки какого-то модуля), то сразу же дайте чёткое указание — код показывать не в окне Artifacts, а в сообщениях чата. Ёмкость окна Artifacts что-то около 700-800 строк кода. Не так уж и много. Потом вывод остановится. По команде Продолжить вывод может или продолжиться с места останова или начаться заново! Снова и снова!
А в сообщениях чата весь этот код он уместит в иконке, который уже потом можно открыть, нажав на неё.
Поиск в интернете
Поиск в интернете у Claude появился недавно. Его сильно не хватало. Также, как и ссылок на источники. В этом он сильно уступал Perplexity. Но сейчас ситуация сильно выровнялась. И устроено всё даже удобнее, чем в Perplexity — даётся сообщение о поиске чего-то конкретного и иконка для раскрытия списка. Как правило, даётся 10 ссылок для каждого поиска. А ведь при сложных вопросах Claude может ходить в интернет чуть ли не по каждому пункту.
Стили ответов
По умолчанию стоит нормальный (Normal) стиль.
Если нужно подробное объяснение, выбирайте explanatory.
Если вам всё предельно ясно и нужны только чёткие ответы без всякого словоблудия, и нет необходимости читать, что Claude сделал и какие у этого решения есть преимущества — включайте режим ответа краткий (consize).
Чем более многословный стиль, тем быстрее расходуются и без того, наверное, самые маленькие среди всех нейросетей, лимиты на размер чата.
Версионность
Многие из «ляпов» Claude объясняются одной простой вещью: он работает в своей версионной системе. При этом, как при работе с Git, некоторые изменения коммитятся, а некоторые — нет. Правда, совсем недавно Claude начал иногда спрашивать, следует ли ему принять данное изменение. Похоже, что от этого зависит то, что он включает в свои версии.
Много раз встречал такую ситуацию: Claude сгенерировал код. Назовем его базовым. Я нашёл в нем ошибку. Он исправил. Затем я обнаружил ошибку другого плана. Клод исправил снова. НО при этом вернулась ошибка №1! Я по инерции считал, что исправление второй ошибки Claude делал в коде после фиксации ошибки первой. Но нет, он сделал её на базовой версии, где первая ошибка ещё присутствует!
Отсюда правило: можете использовать Гит, а лучше параллельно копировать текущий работающий код в отдельный файл, с присвоением ему номера версии. Это также полезно, когда исправление ошибок и дальнейшее развитие проекта (особенно при кусочном программировании) могут привести к совершенно вас не устраивающему коду. Тогда вы можете восстановить последнюю работающую версию, прикрепить ее к сообщению и сообщить Claude , чтобы он её использовал. Без ведения версий собрать сколько-нибудь сложный проект практически невозможно. Ведение версий обязательно!
Редактирование запроса
Если в ответ на ваш запрос Claude успел сгенерировать ответ (код), а потом вы увидели, что что-то не дописали или выразились неточно, можете просто отредактировать запрос. В этом случае вместо нового запроса Claude изменит свой ответ в зависимости от вашего уточнения. И не будет двойного расхода лимита размеров чата.
Новая функциональность в Claude 4.0
Для поиска в интернете нужно при начальной настройке Claude активировать «Web search». На экране ввода запроса в чате эту опцию поиска в интернете можно включать и выключать.
Также с версии Claude 3.7 можно включить/выключить функционал гибридной модели рассуждений (Extended thinking). Это позволяет переключаться между «стандартным режимом» для мгновенных ответов и «режимом расширенного мышления», который позволяет модели использовать дополнительные вычислительные ресурсы для решения более сложных задач.
Плюсы Claude
Если вы в тупике, то обсуждая с Клодом плюсы и минусы несработавшего решения и возможные корни проблем, вы можете подтолкнуть его к нахождению правильного пути.
Claude хорош в концептуальном проектировании и построении логики верхнего плана: какие подходы использовать, какие есть за и против, что лучше в данном случае. Особенно это может оказаться полезным в больших проектах.
Claude неплох в устранении тонких моментов: когда приходится учитывать особенности отработки того или иного языка, всякие задержки, обновления, таймауты, специфические реакции серверов или браузеров.
При возникновении затыка его можно попросить посоветовать альтернативы. Он рассказывает про особенности, про пригодность того или иного инструмента для разных задач. Вам остаётся проанализировать и выбрать решение.
Сравнивает разные инструменты (платформы) по запрошенным критериям.
Легко переписывает код с одного языка программирования на другой.
Практические советы:
Чётко формулируйте задачу
Всегда тщательно продумывайте все детали. Хотя не обязательно озадачивать Клода такой подробной постановкой с самого начала. Можете начинать с общих подходов (см. ниже про обсуждение). Затем спускаться ниже и ниже. А конкретные задания ставьте по очереди.
Все задачи озвучивайте максимально конкретно. Не заботьтесь о повторении слов и лёгкости слога. Мы приучены вместо повтора существительного употреблять местоимения. Но если вы употребили в предложении пару существительных одного рода, а затем говорите «он» («она»), то формально это может касаться любого из них. И Claude сам выберет какой-то вариант, который показался ему наиболее адекватным и начнёт генерить код. Вы потом можете долго удивляться, почему же всё работает не так, как было запрошено.
Замечал, что даже если максимально тщательно всё обдумать и чётко изложить это на английском, при плане из 10, например, пунктов, вы, скорее всего, обнаружите ошибку в самом начале, начнёте её исправлять, что-то спрашивать или уточнять. Тогда все оставшиеся непроработанные пункты в процессе добавления сообщений в чате уйдут куда-то наверх. Очень неудобно. Да и сам Claude путается, если задач много. Поэтому: давайте задания по одному. Проверяйте и тестируйте. И только потом идите дальше.
Исключение: Не дошлифовывайте какие-то непринципиальные шероховатости. Сначала добейтесь верной логики работы. Красивость будете наводить потом, когда уверены, что всё приложение работает правильно.
А вообще-то, Клода очень легко сбить с верной канвы рассуждений. Да и сам он часто (особенно, если не совсем понял сути) может отвлекаться на какие-то второстепенные моменты. Стоит расслабиться (слово за слово) и вам придётся потом долго листать назад, чтобы найти то место, с которого вы свернули не туда.
Жёсткое указание — не генерить код без прямого указания или одобрения
Дайте чёткое указание на то, чтобы Claude не генерил код без обсуждения. Иначе он сам выберет путь решения и начнёт генерацию. И если проект уже разросся, придется ждать пока в окне Artifacts будет бежать генерируемый и совершенно вам не нужный код. И далеко не факт, что тот подход, который выбрал Claude, вам понравится.
Я «зашиваю» эту директиву (и многие другие) в инструкцию к проекту. Хотя иногда он её не читает. Приходится напоминать. Правда, сейчас при старте нового чата Claude частенько начинает с констатации того, что он прочитал инструкцию, будет ей строго следовать, делать так-то и так-то.
Новую тему начинайте с обсуждения подходов
Это перекликается с предыдущим пунктом: сначала обсуждаете подходы. Никакого кодирования в начале. Нужно убедиться, что Claude всё понял правильно.
Хотя бывает и такое, что я сам имею только общее представление о предмете. Прошу Клода рассказать о самой теме, существующих проблемах и вариантах решения. Если что-то следует уточнить — конкретизирую вопрос. Это, помимо выработки пути решения, ещё и очень важный момент (само)обучения. Очень эффективно: если вам нужно решить какую-то задачу — ваш мозг очень быстро и цепко всё схватывает. И запоминает надолго.
Будьте внимательны при прочтении кода Claude
Достаточно часто при генерации длинных кусков кода Клод может вставлять такую конструкцию: The rest of the existing code («Остаток существующего кода»). То есть, вместо самого кода вставляется ссылка: мол, эту часть смотри в существующем коде. Если читать ответ Claude (где он предлагает код), невнимательно, то потом можно долго удивляться, почему же перестала работать уже отлаженная функциональность. Если не особенно вникая просто скопируете предложенный кусок кода с «The rest of the existing code».
Поощряйте Claude спрашивать и уточнять
Поощряйте Claude спрашивать и уточнять, особенно на этапе обсуждения и постановки задачи. Поверьте, это избавит вас от моментов недопонимания и неправильной работы кода. Лучше потратить время на правильную формулировку и убедиться, что Клод понял вас верно. Чем потом долго исправлять то, что он нагенерил, взяв за основу то, что сам посчитал нужным.
Чаще заставляйте Claude переписывать код
Так как при переписывании суммарное время работы над конкретным вопросом увеличивается, результат может сильно улучшиться (вопрос прорабатывается глубже). Но обязательно очень внимательно анализируйте код, который он сгенерит.
Если поняли, что Claude и вы в тупике:
Возьмите паузу и постарайтесь подумать. Часто приходят толковые мысли. Иначе вы идёте на поводу у Claude в его запутавшемся лабиринте «мыслей».
Начните новый чат. В конце длинного чата нейросеть часто начинает путаться и не находит выхода из тупика. То ли память забилась, то ли контекстного окна перестаёт хватать. Хотя Claude Sonnet очень неплох в написании кода, будучи в тупике, при открытии нового чата я, как правило, переключаюсь на Opus. Часто помогает.
Ведите версии кода
Отключайте вывод в Artifacts
В запросах используйте только английский, если можете
При общении с Claude в сфере программирования (и не только) я всегда использую только английский.
Тому есть несколько причин.
В сфере искусственного интеллекта языком оригинальных разработок является английский. Пока не установилась русская переведённая терминология, желательно исключить из общения с ИИ лишнее звено: перевод русский — английский (на нём «думает» ИИ) — русский.
При работе с ИИ на русском как на входе, так и на выходе, у вас есть риск сформулировать вопрос неверными терминами (когда вы не знаете правильных). Если вопрос оказался для Claude с несколькими смыслами, он сам выберет, на какой отвечать. Потом для ответа переведёт с английского на русский. Тогда уже вы можете не понять смысла правильно.
При работе только на английском я уверен в точности своих вопросов и легко понимаю ответ в профессиональных терминах.У Claude, пожалуй, самые маленькие лимиты (из известных мне) на размеры чатов и сообщений. И эти лимиты очень быстро достигаются. При работе на английском тратится примерно в 1.5-2 раза меньше токенов. И лимиты истощаются медленнее.
Совсем недавно промелькнуло сообщение, что во многих языковых моделях все сообщения на русском автоматически направляются также то ли в ФБР, то ли в ЦРУ. Вам это надо?
Забавно читать где-нибудь на Хабре, как люди не занимавшиеся плотно вайб-кодингом или работой с ИИ-ассистентом, рассуждают о том, на сколько процентов (10 или 11) повышается (или совсем не повышается) производительность программиста при работе с ИИ-помощником. Для меня всё однозначно — повышается конкретно. Вот, например, проекты или наброски к ним, которые к настоящему моменту мы отработали вместе с Клодом:
Проекты, написанные с помощью Claude Sonnet/Opus
На момент написания статьи я насчитал 23 проекта. Это за 7 месяцев. С паузами и далеко не 100% времени было посвящено этому.
Причём, часть этих проектов написаны на языках (фреймворках), которыми до начала работы с Claude я абсолютно не владел, или мои навыки были не очень.
Ответы на вопросы
Умеют ли нейросети писать код?
Да умеют. И очень хорошо. Но часто могут путаться. За ними нужен глаз да глаз. Особенно хорош в написании кода Claude, как Opus, так и Sonnet.
Может ли нейросеть заменить программиста?
Только если нужно программировать что-то рутинное или хорошо известное. Даже грамотное и тщательно расписанное Техническое Задание может не спасти от ляпов нейросети. Полноценно заменить программиста нейросеть пока не может.
Может ли непрограммист создать полноценное приложение с помощью нейросети?Только самое простое. Если что-то посложнее — придется самому осваивать программирование. И в этом нейросеть очень даже хорошо поможет. Но это только пока. Нейросети очень быстро эволюционируют.
Можно ли доверять приложению, созданному непрограммистом с помощью нейросети?
Самому простому — да. Или проверенному и оттестированному.
Между прочим, Клод сейчас позиционируется чуть ли не как лучшая нейросеть для написания кода. Особенно Claude Opus. Хотя, особенной разницы между Opus и Sonnet я не увидел. Больше использую Sonnet, он быстрее в ответах.
Впрочем, был один сложный эпизод с парсингом, когда Sonnet запутался в смешении markdown и HTML стилей. Рассуждая вполне логично, он искал причину, последовательно отметая варианты. Но я уже видел, что он в тупике. Яркое тому свидетельство — вместо новых предположений он советовал добавить больше кода для отладки. Тогда я просто открыл новый чат, но уже с Opus 4.1. И он сразу же нашёл причину. В том варианте, который Sonnet уже отмёл, как неправильный!
Напоследок
Самое главное — не воспринимайте Клода как человека — если было множество попыток и ничего не получилось — не бойтесь сделать новую попытку. Claude не посмеётся над вами, что вы такой тупой.
Забавно — если я тестирую код, предложенный Клодом и указываю на ошибку (не синтаксическую), он пишет в ответ: я нашёл причину — в твоём коде ошибка! Правда, в последнее время стало ещё забавнее: он перестал утверждать, что это — моя ошибка. Он оправдывается! Объясняет почему возникла эта ошибка, что он не учёл.
При долгих и неплодотворных попытках найти решение лучше сделать перерыв. Ваш, ещё погружённый в проблему мозг, немного отдохнув и посмотрев на ситуацию со стороны, сам подскажет вам выход из положения.
Помните, вы — архитектор, а Клод — ремесленник или подмастерье. Который по вашей команде напишет нужный вам код.
Вам больше не нужно помнить синтаксис какого-то языка, кроме самых базовых принципов — окончание строки оператора точкой или точкой с запятой (С и JavaScript-родственные языки). Или вообще без всяких делимитеров (Python). С Питоном особенно тщательно присматривайте за отступами (индентами) — от этого зависит логика работы приложения. Если встретилось что-то новое, просто спросите Клода как это работает.
Супер важно — если вы уже владеете каким-нибудь языком программирования, то освоить новый и начать разрабатывать серьёзные проекты на нём с помощью Claude можно за несколько дней. И не тратить на это недели и месяцы.
То, что я описал здесь, это — профессиональное программирование с ИИ-ассистентом. В отличие от вайб-кодинга, где можно ничего не понимать в программировании и даже не иметь представления о том, какой код получается.
А вообще, если сравнивать программирование с ИИ-ассистентом с вайб-кодингом, уместно вспомнить о божьем даре и яичнице. Впрочем, от яичницы не отказывайтесь.
akod67
В модельках точно есть понятие русский или английский язык? Уже есть ощущение, что порой веса там между лексемами, не особо завязанными на языке