Transcription
Привет. Сегодня я расскажу семь правил, которые лично мне помогли преодолеть барьер "Ано не умеет программировать" и, наконец-то, начать эффективно программировать с ЛМ-агентами.
Особенно это видео будет полезно синьорам, которые знают, как выглядит хороший код, и поэтому они не могут преодолеть вот своё отвращение к тому, что они видят, что нагенерировал агент. И в этом видео не будет подсказок, как конкретно улучшить этот код, скорее, как изменить своё отношение к этому подходу, чтобы вы, следуя уже потом своей интуиции, смогли улучшить свой workкфлоу работы с агентом и выработали те правила, чтобы агент начал генерировать код, который вам понравится.
И первое, что я рекомендую сделать - это выбрать задачу, которая вас по-настоящему увлекает, либо ваша какая-то личная боль, которую вы бы хотели разрешить, потому что вам предстоит, собственно, сфокусироваться на обучении. Да-да, вам придётся научиться работать с этими агентами. И чтобы обучение было интересным, вам нужно действительно хотеть решить вашу задачу.
Второе, весьма контриинтуитивное правило - это я рекомендую выбрать стек, на котором у вас нет опыта, либо, по крайней мере, нет сеньорского опыта. Понятное дело, что вы всё ещё будете видеть, например, структуру классов и сможете сказать, что архитектура никуда не годится, но вы не сможете закапываться в детали стека, в детали реализации. И это позволит вам сфокусироваться на главном, собственно, на получении продукта, на получении результата, который работает. И это позволит вам в полной мере ощутить ту самую магию, когда вы пишете запрос, получаете вполне работающий код.
И я рекомендую это сделать, потому что я вижу очень часто мнение в Твиттере или у себя на канале в Телеграме, э, когда люди говорят, что вот оно не умеет программировать, оно программирует какое-то оно не умеет в архитектуру и вообще невозможно как бы с этим работать. Только я увидел первые строчки, сразу же всё закрыл, удалил и вернулся дальше программировать сам из головы. И в этом есть доля истины, понятное дело, но это инструмент, и этим инструментом нужно уметь работать.
Если вы попросите программиста решить вам задачу, то программист, возможно, просто возьмёт и решит вам задачу. Напишет весь код в одном файле, который решает задачу. Вот именно примерно так оно и работает. Но если вы этому программисту поставите рамки, скажете, как конкретно надо решать задачу, где она будет в дальнейшем использоваться, кто будет использовать этот код, как этот код будет поддерживаться, какие стандарки архитектуры есть у вас конкретно на проекте, то тогда программист будет решать задачу совершенно иначе. И вот именно так и работают эти ЛМ-агенты, но это вы узнаете только после того, как вы их освоите.
Вот поэтому я рекомендую начинать всё-таки проект с чистого листа. Потому что в ваших рабочих проектах, скорее всего, очень много контекста, который нужно знать. Он, скорее всего, живёт в вашей голове, даже ни в какой ни в документации. И именно поэтому вам этот контекст будет очень тяжело передать агенту на первых порах. То есть вам нужно научиться этому контекстннирингу, как это называется. И гораздо проще этим заниматься, когда проект новенький. То есть вы там можете использовать все самые современные версии библиотек. Вы можете настроить там линтеры и другие подсказчики так как это работает. Вы скажете: "Да, ну я же не разбираюсь в этом стеке". Но для этого у вас есть, и это правило номер четыре, на самом деле.
Ограничение - это твой друг. Говоря про стек, я всё-таки рекомендую начинать работать с языком со статической типизацией и хорошей системой типов, потому что статическая типизация не гарантирует, что система типов хорошая. Потому что на самом деле, чем больше ограничений, чем лучше система типов, тем больше агент сможет ловить своих ошибок сам. То есть он будет пробовать компилировать ваш проект, ловить ошибки и исправлять их тут же в цикле и выдавать им уже работающий код, скажем так. Поэтому ограничение - это твой друг.
Также обмазываем всё хорошим набором линтеров, чтобы держать агента взде, потому что иначе агент, ну, как бы работает, как на Диком Западе. То есть архитектура пофигу какая, проект новенький, линтеров никаких нет, фигачим всё в один файл или просто валим всё в одну директорию. И на самом деле в этом есть логика. То есть если код становится очень дешёвый для того, чтобы его писать в больших количествах, то и структурировать его, возможно, уже не так важно. Но об этом мы поговорим в дальнейшем. Мы всё-таки рассчитываем на то, что этот код будет на данном этапе читать человек. Возможно, там его как-то будет легче потом систематизировать. Поэтому потратим первые как бы моменты, первые пару циклов с тем, чтобы определить эти правила.
Вот. Это правило номер пять. Потрать первые интерации на проработу архитектуры, где что будет находиться. Всё это фиксируем в файле Agents MD. Обмазываемся линтерами, устанавливаем самые хорошие, это как называется hardness окружение для для тестов и для билдов. Ну а потом начинаем программировать.
И здесь, на самом деле, главное, чтобы у вас было хотя бы вот комитмент. Ну вот на недельку надо хотя бы забиться. То есть вы прямо себе ставите план, что в течение недели вы будете пробовать и не бросите это занятие. Неважно, чего там вы будете видеть, неважно, что вам агент будет выдавать, какого качества код, вам он может нравиться, не нравится, но не подавайте соблазну. Скажите: "О'кей, я не буду делать ничего сам. Я не буду прерывать эксперимент. В конце недели я посмотрю, чего у меня получилось".
И на самом деле самое главное - это получать удовольствие от это всего. Это седьмое правило. Не пытайтесь никому ничего доказывать. Я устал доказывать людям то, что агенты производят работающий код. Я недавно стримил часик ночью, как я разрабатываю приложение, которое уже в Асторе, которые уже люди покупают, которое работает, которым я пользуюсь сам. Я его навайп-кодил практически с нулевыми знаниями Свифта, под Macos. А под мне там пришлось поковыряться в документации. там некоторые моменты агент не смог раздуплить, но это всё произошло уже после того, как я понял, как с этой системой работать.
И, собственно, решил снять это видео, чтобы вы тоже смогли научиться, как работать с агентами, а уж после того, как у вас получится какой-то результат, вот там вы сможете подушнить, сделать кодревью, оттянуться по полной на этом агенте там, в любой социальной сети или с друзьями. Но самое главное, вы поймёте, как с этим работать. Вы поймёте, какие-то есть ограничения. Вы поймёте, как держать агента в узде. Вы поймёте, что значит предоставлять контекст этому агенту, чтобы он следовал контексту. Что делать, когда он уходит в сторону? Сайд-эффект. Вы разберётесь в этом новом стеке для себя. То есть я сейчас понимаю Macкуos S и Swift гораздо лучше, чем я, чем когда это всё началось. Вот. Но понятное дело, что всё ещё не на уровне синьора, потому что для этого всё-таки надо руками пописать код. Но, возможно, через полгода я смогу понимать эту систему ещё лучше, потому что я буду продолжать. И в этом самая главная штука.
Начните, научитесь, продолжайте и делитесь в комментариями, как конкретно вы используете и в своей работе, что у вас получилось. Возможно, вы начали какой-то птпроект, который вы долж давно хотели начать, но не умели программировать под мобилу, например. Вот. А я увижу вас на канале. Спасибо, что смотрите. Пока-пока.