Пожалуйста, думайте!

Пожалуйста, думайте!

@m0n0x41d

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

То ли не согласны со мной, то ли думают что я далек от прогрессивного мира LLM driven development, не умею в prompt "engineering" – не знаю 🤷‍♂️

Пару раз меня в личку уже спросили – а какой я моделью вообще в курсоре пользуюсь, может я тут что-то не то нажимаю, и вместо Sonet 3.7 какой нибудь default выбран?

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

Cursor (с антропик моделями) сильно ускоряют разработку, рутинное кодирование, генерирование больших фикстур на основании моделей, простые функции "в вакууме" и так далее. Помогает быстрее факторизировать куски кода, подвигать их лучше чем просто ренейминг в IDE и ручное копирование.

Я все еще не нашел времени проверить и модифицировать подход Харпера о котором писал пару дней назад. У меня есть некоторые надежеды, и я обязательно расскажу о своем опыте и довольно скоро.

Дорогие коллеги, я ругаю LLM по большей части, чтобы зародить в вас искру стремления думать своей головой, искру уже сейчас совершенно бесценную. Я искренне желаю чтобы вы не "тупели сломя голову" и не ловили себя на том, что 20 минут тыркаете промпты, когда LLM вас не понимает, то так то эдак пытаясь напихать ему файлов в контекст - вместо того, чтобы уже наконец написать самому так как надо, в меру своего понимания.

И далее, я стремлюсь к тому, чтобы вы не забывали о том, что начиная с middle+ и уже тем более с сеньорского положения на работе (или размера живота), ваша деятельность будет состоять все меньше из написания кода, и все больше из принятия архитектурных решений, головоломки с процессами. Задачи будут становиться все более сложными в плане их системности, зависимости, и в них будет все больше задействовано других агентов, людей или ботов – не важно, задачи проще особо не станут.

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

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

Андрюха у нас труп, возможно криминал.

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

Вам нужно допросить всех свидетелей, а еще вам нужно допросить главного подозреваемого (ой ну то есть главного стейкходлера), которого кстати еще предстоит найти, потому что не всегда понятно кто это в каждом конкретном деле :)


Кроме того, у вас наверняка есть кучка работающих с вами "полицейских", некоторые из которых могут быть алкоголиками, или как минимум крайне непоследовательны в своих убеждениях и трудны в коммуникации по любой другой электрохимической причине.

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


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


На такую детективную работу LLM просто не способны, а я по своей глупости работая с курсором некоторое время упорно пытался общаться с ним таким инжинерым языком (ну интересно же пределы проверить, правда?), ведь кажется что на то и дали возможность в чате добавлять разные файлы для контекста... 🤔

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

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

По этой причине я перестал бадаться и стараюсь задавать все более плоские, конкретные запросы, все чаще в режиме chat, а не "composer/agent". Ну как минимум между окнами переключаешься реже ;)


А еще, и это очень важно - LLM никогда не будет с вами спорить. 

Все ваши указания, верные или не верные в 9 из 10 случаев LLM с радостью берет в работу, заводя на все более кривую дорожку. Так что если у нас самих нет тормозного механизма для рефлексии, чтобы хоть как то попытаться свои собственные гипотезы относительно некоторого куска проектного дизайна проверить, прежде чем отдать их тупо в работу LLM - дела наши триндец не очень.

Тут меня посетила мысль, что в через .cursorrules можно ему напихать что то вроде - НИКОГДА НЕ СОГЛАЩАЙСЯ RIGHT AWAY на мои гипотезы. Но чую я что это только усугубит положение.

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


Восторженные стенания могут пугать потенциальным объемом нового говнокода, и новой скорости генерации этого говнокода. Но не пугают, потому что говнокода уже более чем достаточно. Мы ведь на чем то обучили LLM в конце концов :) 

Рады все - и программисты, которым теперь еще меньше надо думать, и владельцы бизнеса, которым наплевать на чистую архитектуру, технический долг и прочее - лишь бы быстрее заработала фича и потекли денежки.

Моя же линия очень простая, и даже не гнутая - что в старом, что в новом LLM мире не пропадет тот, кто тренирует свою главную мышцу. Думать надо.


Report Page