Тред про AI-агентов - от вайб-кодинга до персональных ассистентов, которые сидят в твоих чатах, читают заметки и автономно ломают всё вокруг. Для кодеров, которые разучились писать руками, и для гуманитариев, чей диплом филолога наконец котируется в IT. Сеньор в 2026 - это тот, кто умеет внятно объяснить машине, чего он блять хочет.
С чего начать: • Хочешь кодить с AI эффективно: Cursor или Claude Code • Хочешь кодить в VS Code без привязки к конкретному провайдеру: Kilo Code, Cline или Roo Code + OpenRouter • Хочешь кодить с AI локально: DeepSeek Harness, OpenCode или Pi Coding Agent + из моделей аноны советуют Qwen3.8 27B, подробности в llama-треде • Хочешь персонального ассистента: OpenClaw + API корпов или локальная модель на твоей пеке
>Хочешь кодить с AI локально: DeepSeek Harness Хоть кто-нибудь этим пользуется для кодинга с локальными моделями? Или моче занесли чемодан грязных юаней?
>>1689555 → >Насколько это надёжно? Может, надёжно. А может, ненадёжно.
>Нет, я про то, что существует разделение прав, а еще --no-preserve-root в тул зашитый. Модель заметит факап и не сломается Ага, защитит в одном конкретном failure mode из бесконечности возможных. Даже от rm -rf /* он уже не защитит, даже без прав рута, потому что хомяк с архивом фоточек точно так же улетит к хуям, к нему лишь добавится большое количество сообщений в (невидимом юзеру) логе can't remove /bin/cat: permission denied, очень ценно, да
>Все так. Касается и юзеров. Надо понимать, что все что делает агент по ошибке может сделать и юзер по ошибке. Да, поэтому юзеру тоже следует тестировать скрипты в докере. Но надо ещё иметь в виду, что у юзера неявно гораздо больший горизонт понимания реальности, в которой он находится, чем у самого умного агента. Если субагент получил задачу от юзера или вышестоящего агента-оркестратора "проверь, что скрипт работает, исправь ошибки", и скрипт выдаст ошибку "dangerous operation; use --no-preserve-root to override", ты уверен, что агент не добавит --no-preserve-root и не прогонит тест заново? Аналогично с "чисткой места на диске" и прочим. У него же кроме ЦЕЛИ другого контекста нет. Поэтому докер.
>И какую цепочку предлагаешь которую модель провернёт? Возьмёт логин-пароль из профиля броузера (или ещё откуда-то, куда не должен был заглядывать), добавит в скрипт в качестве параметров для wget, закоммитит и запушит (или ты закоммитишь и запушишь, не заметив, что сделал агент. Работает же!)
>Ты тут сидишь уверенный, что агент не сможет нахуячить тебе тестов игровой логики где он просто скриптами тестить логику не сможет (он сможет). Я не очень понимаю. В треде больше двух человек. Вот это я >>1689432 → ты спиздил мой тейк, лол
>СОСАЛ Сразу нахуй, я это даже не читаю.
>Нет. Но он как минимум означает, что вероятность есть гит и гит сервак не в одном месте растёт. >Поинт в том, что человек который поднял докер наверняка хранит проект который он пилит 3 месяца не в одной папке. Мда, ну и хуйня. "Очки одел, интеллигент."
>Поэтому ограничения на уровне харнес не работают, а на уровне ОС работают Но ты-то вроде как топишь за то, что ограничения вообще не нужны, а точнее нужны в виде указаний агенту "не удаляй мою хуйню, не тыкай в мой гит"? (как будто ни разу не видел скриншотов "Признаю свою ошибку. Ты дал мне прямое указание, и я нарушил его. Это абсолютно непростительно" и т.д. и т.п.)
Вообще надо бы шапку уже перелопатить. Потому что материала предложено много, а полезного мало. Фак слишком куцый.
По порядку. Виндсюрф надо заменить на девина, он ща так называется, либо вообще убрать, потому что это калисто.
По кли агенту от каждого провайдера - тоже список слишком большой. Оставить 3-4 опции (впопу код, пай, dsh и клод-кал). Ну либо разбить на тир-опции, уровня "любишь пердолиться - ставь пай, тау, dsh", любишь когда все just works из коробки - юзаешь опен-код. Анальный раб Дарио Амадеи - клод-код. Что-то в таком духе.
Полезные тулзы сейчас - говно. Их, совершенно точно, нужно разбить на категории и как-то понятней объяснить в чем профит. Да и внезапно, оказалось, что пещерный человек-то даже набедренную повязку не носит, и в долгосроке тратит больше токенов через минималистичный систем промпт. Сейчас у нас буквально, два тула для ужатия траты токенов, два тула а ля греп, и один тул про сраную из жопы память [sic]. Ну вкатится пердоля, поставит сразу себе все это, и че?
У вас есть какие-то проверенные практики или готовые инструменты для разделения задач? Хочу гонять локальный квен до бесконечности, раз есть возможность, но проблема в том, что на больших тасках у него будет просто не хватать контекста, чтобы делать какие-то сложные вещи, он начнет автоматически упрощать какие-то детали. Но вот если дать ему какую-то отдельную, маленькую часть задачи то он сделает ее шикарно и во всех деталях, но это будет далеко от завершенного проекта. Вот бы делить задачу на мелкие таски и последовательно выполнять их.
>>1689605 SOLID Был придуман ровно для этой цели во времена, когда проект требовалось разделять между мясными программистами. Минус в том, что придётся напрягаться и придумывать архитектуру программы.
Суть форса то в том, что все эти методологии в итоге являются сосалом, хоть икея, хоть spec driven или твой личный сорт гайдлайнов\методологий.
Ну и в итоге владелец 20 страничной методологии написанной агентом + шизом автором пососёт)
> Но ты-то вроде как топишь за то, что ограничения вообще не нужны, а точнее нужны в виде указаний агенту "не удаляй мою хуйню, не тыкай в мой гит"?
Вероятность факапа от наличия этого падает. Это ключевое. Гарантии это совсем другое и в большинстве случаев они не нужны, а требуют дохуя подумать как это все так организовать, чтобы факап не произошел. + теряется целый вектор полезных применений агента как твикернуть хуйню от майков очередную (У меня полезный юзкейс был в том, что 10тка начала грузится ровно 30 секунд. Посадил агента разбираться и он отключил системный таск попытки предложить мне обновится до 11, после чего загрузки стали за 0. А также позитивный опыт того, что у меня периодически пропадал ssd во втором слоте, и отключение фастбута винды вылечило это. Все агентом.).
Поинт в том, что гарантии не нужны, если вероятность факапа мала. Основное что обеспечивает малую вероятность факапа это то, что ты смотришь за тем, че он там делает "глобально" в сессии. Поэтому лично для меня это работает. Если ты планируешь давать агенту роумить 30 часов с невнятными задачами где ты не следишь - гарантий нужно поболее.
Ты же не сидишь с рейд 0 ибо в любой момент диск может отъебнуть.
> Поэтому докер. Тоже путь. Пограмотней многих. Хорошая опция. Никого не осуждаю. Но ведь это тоже ебля? Я не очень глубоко разбираюсь, но берут меня сомнения, что туда тривиально прокидывается карта и это все без проблем запускает редактор.
Раз уж ты не оригинальный топикстартер, не вижу поинта с тобой обсуждать этот юзкейс. Круто что смог. Мне впадлу ставить wsl и ебстись. А агентом я с домашнего компа в основном по вайлдбериз озону бегаю по вопросикам и аналитику гоняю в основном. Кодинг если и был, то достаточно изолированный и я был включен в процесс.
> Возьмёт логин-пароль из профиля броузера (или ещё откуда-то, куда не должен был заглядывать), добавит в скрипт в качестве параметров для wget, закоммитит и запушит (или ты закоммитишь и запушишь, не заметив, что сделал агент. Работает же!)
Это называется промпт инжектинг от провайдера. Снихуя такую хуйню сделать может разве что совсем уж лоботомит + ебанутые инструкции. У меня такого не было) И мне кажется в деле замешан чей-то сосал с практиками разработки
>>1689617 Это челу нужно дофига подумать чтобы сделать нехорошее. Нейроныч же может за 1 сек "придумать" сложный ход. Он даже ризонить не будет, а просто выплюнет скрипт на питоне который удаляет гланды через жопу.
Нихуя не значит. Буквально. Тебе не нужно объяснять что такое Техника Безопасности и нахуя она нужна
А СОЛИД уже 40 лет инфоцыгане на конференции таскают и рассказывают ЧСХ каждый раз разное. Эта параша едва ли работает для жавы для которой и была придумана, что уж говорить про другие ЯПЫ.
Ей богу, как ИКЕЮ в вайбкодинг тащить, а получать СОСАЛ.
>>1689605 > Хочу гонять локальный квен до бесконечности На 4-5 компакции потеряешь все.
Лично у меня получилось скриптом выдавать след таску А сам агент я стартовал через скрипт в цикле, чтобы он сделал задачу (промпт, где написано какой скрипт вызвать), выдал лог действий, закончил.
Так у меня без компакций было сделано довольно дохуя.
Можешь попробовать оркестрацию, но это тоже не работает толком.
Пока никто не придумал рабочее решение. Можешь пользовать клодовский подход со спавном ебического количества субагентов с фейлур рейтом 47%
>>1689628 У меня как то агент в режиме планирования обнаружил что у него нет возможности писать, и начал через вызовы питона писать файлы. в dsh песочница кстати проверяет то что если вызов какой то команды пишет вне песочницы - то выходит запрос на разрешить. типа pnpm хочет писать в свой кеш вне песочницы, и приходится изгаляться чтобы не ебало мозги.
>>1689624 >На 4-5 компакции потеряешь все. Вот я буквально спрашиваю как с этим бороться. Я не хочу гонять один контекст до бесконечности и хочу разделять задачу. >Можешь попробовать оркестрацию Сейчас придумываю архитектуру как раз. Хочу запилить что-то близкое к реальному рабочему процессу, с трекером задач и даже мессенджером в котором агенты с разным контекстом могут общаться между собой.
>>1689633 > У меня как то агент в режиме планирования обнаружил что у него нет возможности писать, и начал через вызовы питона писать файлы.
Я пользуюсь CLI, все что может делать CLI откуда я запускаю агента я считаю доступным агенту.
Я тут в целом и ношу тяжелый тейк, про то, что блокировки на уровне агента нихуя не решают, а души\гайдлайны вокруг безопасности приводят к большим проблемам чем решают
Вот ограничь ты ClI откуда агент запущен по правам на запись\чтение... Прокатило бы Проблему нужно решать на этапе ОС, а не на этапе программы
>>1689628 Я ваши сосалы не использую. У меня просто дурацкая привычка читать то что пишут агенты по ходу выполнения задачи. Они эти скрипты утилитарные, которые не идут в код пишут постоянно. Не будет питона на перле тебе удалят гланды. Скрипты просто выплевываются и сразу проверяются на практике.
>>1689587 Я чуть не погорел, но вроде удалось его успокоить. Удалние файла лицензии прокатило, он не нашёл сам актуальную и угомонился. Вот так и вайбкодь с жпт, на каждом шагу за яйца трогает. Сейчас посмотрим что выйдет.
>>1689637 > Хочу запилить что-то близкое к реальному рабочему процессу 0 задач Будешь на встречах по 6 часов в день согласовывать сидеть?)))
> с трекером задач Смысл имеет, но задачи писать будешь ты получается? Сделай папку с промптами и запускай по очереди лол
> мессенджером в котором агенты с разным контекстом могут общаться между собой Крутая идея. Зачем? Обоснуй какой толк от этой хуйни? Ну вот напишут они свои статусы друг другу, будут помнить как этим месенджером пользоваться, переписываться и сбиваться со своей цели на попиздеть про левую хуйню для твоего агента
Скармливай им сценарий шрека 2 перед началом выполнения задачи, меньше артефачить будет чем вот эту хуйню делать.
Никакого состояния быть не должно (в идеале), особенно у исполнителей. Тебе бы в 150к задачу успеть сделать, а ты выдумываешь хуйню абы контекст засрать
>>1689637 А что тут сложного? Когда я запускаю опенкод на готовый план, я говорю ему выступать в роли оркестратора, а для написания кода использовать субагента имплементера, для ревью субагент ревьювер. Оркестратор передает фидбек ревью исполнителю чтоб тот фиксил кал. Исполнитель получает небольшие слайсы плана. Оркестратор весь прогресс трекает в файле, так что даже если у него случится компакция, он смотрит в файл прогресса
>>1689646 Вообще не так это воспринимаешь. Агенты делятся на роли, менеджер сам создает таски, подагенты выполняют эти таски и в случае проблемы сообщают менеджеру о наличие проблемы, а он гибко коррекирует план реализации, добавляя новые таски. >зачем Буквально чтобы разгрузить контекст с одного агента. Если все не помещается у него в контексте, то нужно сделать так, чтобы одна выполненная им таска была полноценным, рабочим кирпичиком в крупном проекте, который оркестрируется другим агентом.
>>1689624 >Нихуя не значит. Буквально. Чел, я читал от тебя уже этот ебланский тейк. Для меня SOLID стал самой полезной в жизни рекомендацией по архитектуре программ, когда я с ним разобрался (задолго до вайбкодинга). И вот с одной стороны я эмпирически наблюдаю, как конкретно благодаря использованию SOLID у меня начал писаться отличный модульный код, в который можно вносить правки, и он от этого не ломается. Можно добавлять фичи, и это не превращается в ад по мере роста проекта. А с другой ты вот тут пишешь, что SOLID нихуя не значит. Я ебал твоё мнение. Но я его услышал. Можешь больше не повторять.
>Эта параша едва ли работает для жавы для которой и была придумана, что уж говорить про другие ЯПЫ. Оно даже для embedded C работает. vtable на struct'ах неплохо заменяют интерфейсы. В SOLID нет ничего прибитого ни к какому языку.
>>1689628 >У тебя лично такое было? У меня вот прям конкретно ровно такое и было. Агенту было запрещено использовать некую шелл-команду (уже не помню, какую), он это увидел, и нет, он не воспринял запрет как "оу, юзер не хочет, чтобы я это делал, и я, пожалуй, не буду". О нет! Он пошёл по пути "так, вот таким образом я это сделать не могу. Каким образом я могу это сделать с использованием имеющихся у меня инструментов?" И таки да, он нахуярил скрипт на питоне, который делал в системе, то, что должна была сделать заблокированная баш-команда. Без нежелательных последствий, но как же знатно я охуел.
>>1689617 >Мне впадлу ставить wsl и ебстись. В этом-то и проблема. Тебе впадлу, и тебе твоя инфа на пеке прям не настолько ценна, чтобы за неё рвать жопу. Но ты вместо того, чтобы это честно сказать челу, который попросил советов по защите инфы, выдаёшь ему рационализацию своего похуизма под видом технической рекомендации. "Напиши в промте, чтоб ничего не удалял, и всё будет ок, бро! Никогда по-другому не будет! Такое невозможно! Кудах!" А челу надо инфу сохранить на пеке. И ему его инфа, может, гораздо ценнее, чем тебе твоя. По каким угодно причинам, будь то отсутствие бекапов или что угодно ещё, это его дело.
>>1689678 > vtable заменяют интерфейсы Не знал, что одна из вариаций реализации интерфейсов заменяет интерфейсы. Иронично, что ты попал на типа который реализовывал интерфейсы через указатели на метод в стракте т.к. виртуал в коде вызывал wdt на esp8266
Интерфейсы в эмбеде можно еще на битах строить, но суть не меняется. Ладно, чет я доебался
> Solid стал полезной реккомендацией Ты прочитал/узнал/освоил одну из вариаций интерпретации солида
Есть альтернативные интерпретации. Весь солид конфликтует сам с собой и впринципе в зависимости от трактовки твой лично твой код, может как считаться солид комплаянт так и нет.
В этом и суть тезиса, что он нихуя не значит, ведь у него много трактовок
Давай так. Кто делает код не по солиду? Работали ли вы где-то где не декларировалось, что у вас солид? Может была активная надпись, что мы тут не по солиду работаем? Я недавно читал т.к. к нам аудиторы пришли про принятые принципы кодирования ПО, там тоже солид написан, а у меня 30+ подпроектов и они все написаны в своём стиле и все сука по солиду)
Ну и модульная архитектура в целом достаточно разное может значить. У меня перед глазами жило 3 кодовых базы с кучей крестовиков рядом и у каждой из них радикально отличался код. Прям ахуительно по разному. Я был в команде которая рот ебала ооп приколы, стракты без методов, а вся кодовая база это чистые функции в неймспейсах. А соседняя все делала на объектах с ооп ебанистикой интерфейсами и new и * везде. А все мы одновременно исповедовали один и тот же солид по сути.
Нихуя не значит. Никакой конкретики. Можно заменить в 99% случаев на "current thing"/"икея"/"современные методики" и смысл не потеряется и не прирастёт. Об этом нихуя не значит я говорю. Когда твоё понятие можно заменить на любое другое и нихуя не поменяется
Опус тренировали дебилы: 1) запрос - отсортируй по качеству проектов, в списке, - полный игнор 2) запрос - отсортируй брайн как система что лучше - игнор 3) запрос - блять, СПИСОК АВТОРОВ КТО ЛУЧШЕ СДЕЛАЙ СУКА БЛЯТЬ ЕБАНАЯ ТВАРЬ - услышал
>>1689698 Я считаю, что у вкатунов черезмерная тряска по поводу модели которая удалит им папку юзера.
Если с ней решать задачи по написанию проекта, то вероятность этого стремится к нулю.
А новичек может наивнейше полагать, что театр безопасности вокруг с подтверждениями, валидациями и сильными запретами что-то даст
Но при этом я считаю что ставить агента на виртуалку оверкиллом и тупо неудобным для новичка. Разберётся че да как работает, набъёт шишки и сам решит. Ставить виртуализацию хард реквайрментом на вкат я бы не стал.
Да, у меня нет каких-то ахуенных в 1ом экземпляре существующих ценностей на диске. Проебать все это всего-навсего дискомфорт.
Или ты все же хочешь сказать, что все должны агентов крутить в докерах и только так этим можно адекватно писать проекты? А тряска новичка обоснована и ему не нужно ставить yolo мод
>>1689749 > бесплатно и быстро В тексте описана передовая методика разработки ПО Sucess Oriented Software Architecture & Logic, с множеством деталей, а также раскадровки фильма Шрек2
>>1689725 >Я недавно читал т.к. к нам аудиторы пришли про принятые принципы кодирования ПО, там тоже солид написан, а у меня 30+ подпроектов и они все написаны в своём стиле и все сука по солиду) И что именно в этом должно быть удивительного? Солид не прибит ни к конкретному языку, ни к конкретному синтаксису, а это типа всё, что есть в программировании? И если солид не определяет ни языка, ни синтаксиса, то он не определяет ничего? Да, я дохуя чего написал не по солиду. У меня был код, где всё строилось на гигантских свитчах, и для добавления какой-то новой фичи надо было по всем им пройтись и добавить новый case. Это было не по солиду. У меня был код, где надо было лазить в кишки реализаций через несколько точек/стрелок, и когда я менял реализацию, надо было проходить по всем функциям, работавшим с этой реализацией, и все их править. Это было не по солиду. А считал, что пишу хороший код, ведь в нём не было глобальных переменных и операторов goto, кек. У меня был код, где в принципе не было инверсии управления, потому что я не пользовался апкастами, и все вызовы делались только по конечному типу объекта. Это было не по солиду. У меня был код, где множество задач решалось в одном гиганском цикле, причём задачи были разделены и кусками рассованы между кусками других задач. Это было не по солиду. Когда я всё это переделал, и оно заработало, это было просто охуенно. И если для тебя это всё тривиально и само собой разумеется, то для меня оно всё было совершенно не тривиальным и пиздец каким мозгоразрывающим. И всё это я узнал, почитав про солид. Меня некому было учить, потому что в эмбеддеде в основном проекты пишутся в одно рыло, и даже если не в одно, то коллеги имеют примерно такой же пещерный скилл. Они знают законы Кирхгофа и теорему о свёртке, но кодят хуже вебмакак.
>>1689764 >Меня некому было учить, потому что в эмбеддеде А зач в эмбедде добавлять оверхед солидовский? Там ведь как я понимаю цель как можно эффективней использовать ресурсы и не засирать память абстракциями
>>1689734 >Или ты все же хочешь сказать, что все должны агентов крутить в докерах и только так этим можно адекватно писать проекты? Нет, каждый должен сам оценить, какие риски и какие неудобства готов на себя брать, сопоставить одно с другим и решить. Только не надо мозги ебать, что рисков нет.
А ещё, помимо прочего, докер так-то появился до ЛЛМ, и он ещё много чего хорошего умеет - не засирать основную систему либами, делать предсказуемую среду для разработки и сборки, и делать её где угодно - без того, что на одной пеке всё компилируется и работает, а на другой нет, и никто не помнит, что установили на одну пеку и забыли установить на другую.
Докер это и так бест практис в разработке, а тут он ещё и для агентного кодинга оказался мегаполезен.
Теперь эта штука умеет чекать куки в браузерах и юзать их для аудентификации. Мне такой метод не то чтобы нравится, но ДОХУЯ провайдеров не имеют эндпойнта на который ты можешь кинуть запрос с апи ключом в Bearer и получить жсон с метриками >нахуя? Для себя в первую очередь. У маководов есть CodexBar, у виндузятников... ну наверное что-то есть, теперь что-то будет и у двух с половиной линух юзеров https://github.com/zbndev/tidemark да, курсор фри план, чисто для шоукейза, подписки на этот кал у меня нет
>>1689779 Виртуальные методы (единственный тип абстракций, без которого не обойтись в SOLID, по сути указатели на функции, оверхед в пару десятков байт на модуль) по нынешним временам нихуя не стоит. В C++ они есть, и C++ считается супербыстрым и суперэффективным языком. Это не сборщики мусора и не рантайм интерпретаторы какие-нибудь.
>>1689764 > Ходунки базовая штука > возмущается, что на рекомендацию пользоваться ходунками наезжают
Ну примерно такая аналогия
То, что ты прочитал "современные рекомендации по работе с кодом" и у тебя произошел neuron activation это очень круто. Я очень за тебя рад, коллега пост-эмбеддер. Круто, что статьи которые ты читал на тему были названы "про солид". Жаль, что ты прочитал 20 трактовок которые могли противоречить друг другу.
Это к сожалению никак не противоречит тейку, что у него доухя трактовок и само по себе это нихуя не означает. Как ажайл, скрам, канбан. Слова есть, какой-то общий ореол о чём есть и целая индустрия инфоцыган которые набегают продавать курсы по этим ценным методикам.
Поэтому делать по SOLID это буквально рекомендация хуй пойми чего, хуй пойми как, и хуй знает, что ты имеел ввиду.
Особенно давать такую реккомендацию на запрос > "У вас есть какие-то проверенные практики или готовые инструменты для разделения задач?" Ну реальный сосал. Каким хуем солид в управление проектом? Лучше уж пусть по ИКЕЯ делает) По МАКДОНАЛЬДС, имеет хоть какой-то смысл. Че у тебя в управлении проектом есть ДЕПЕНДЕНСИ ИНЖЕКШН И ЛИЗКОВ САБСТИТУШН?
> Когда я всё это переделал, и оно заработало, это было просто охуенно. Заглянешь через полгодика) Осознаешь, что ахуенно это дело крайне относительное.
> Меня некому было учить, потому что в эмбеддеде в основном проекты пишутся в одно рыло, и даже если не в одно, то коллеги имеют примерно такой же пещерный скилл. Они знают законы Кирхгофа и теорему о свёртке, но кодят хуже вебмакак.
Когда-то сеймы. Сейчас рекомендацией для кодинга могу дать только google style guide, кроме секции про эксепшены (гугловики ебанаты и жирно неправы в своей машне на эксепшены и там по сути 3 абзаца копиума т.к. им линковаться с парашей из 88 года на серваках нужно и все в легаси, поэтому они не могут в эксепшены).
Хз сколько у тебя попыта в проге и как ты глубоко в этой всей темке. Но искренне не понимаю в чем твоя проблема с тезисом, что он нихуя не значит. Симулякр очередной за годы. Трактовки давно затмили идею придуманную в 80ых и давно нерелевантны.
Что-то на уровне писать по "чистому коду" написанному для java 5 бездарем мартином который сам себе же противоречит в своей же книге лол (у него трактовка солид выродилась в то, что функции должны принимать 0 аргументов в идеале и быть до 7 строк, а передача данных между функциями происходит через модификацию полей класса в котором функции лежат. Тру ПИЗДЕЦ.
>>1689812 Спроси у ЛЛМки, ей же этим пользоваться. Я спросил у джеминай, он сказал, что ему норм ddgr. Ну я его добавил в Dockerfile для контейнеров, в которых антигравити запускаю.
Держу вкурсе, что их компиляторы сворачивают если у тебя граф виден на -О3/LTO, но в эмбеде нет компиляторов свежее 2012 года по ощущениям (по полноте функций), и виртуальщина может тупо крашить из-за кривой реализации этого самого компилятора (привет espressif). Оверхеда на ПК толком нет.
Но сейчас в мире С++ модно писать на чистых функциях, без хуйни ООПшной. А до текущих чистых функций был CRTP. Писать в ООП стиле в современных плюсах это лютейшее ретроградство. И везде можно реализовать сабститушн. Его нахуй на CMAKE чистом можно реализовать лол тупо подменяя реализации блоков.
>>1689812 DDGS + 2 скрипта 1 ходит за снипетами через DDGS библиотеку (результат тот же что через Firecrawl за деньги или SearXNG с селфхостом) 2 просит суб агента собрать данные по ссылке + промпт
Пару тредов назад писали более подробную реализацию
Попроси агента по этому сообщеию тебе экстеншн родить. Для пи работает прекрасно pi.registerTool({ name: "web_search", label: "Web Search", description: "Search the open web and return a short list of candidate links (title + URL + snippet). " + "Use whenever facts may be stale/unknown: versions, API changes, prices, news, release " + "dates, error messages, anything post-cutoff. This only finds URLs — if you need the " + "actual content/answer, hand a promising URL to extract_page. Search is free (DuckDuckGo).", promptSnippet: "Search the web for candidate links (title+URL+snippet)", promptGuidelines: [ "Use web_search when the answer depends on info newer than your training cutoff (versions, prices, news, docs, error fixes).", "web_search returns links/snippets only. To actually read and answer from a page, follow up with extract_page on the chosen URL.", ],
pi.registerTool({ name: "extract_page", label: "Extract Page", description: "Read a single web page and return the concrete answer to a task. Given a URL + a specific " + "task, fetches the page, extracts its readable text, and distills just the requested " + "information (never dumps the whole page). Use AFTER web_search to read the promising " + "URLs it found. Works best on static pages: articles, docs, changelogs, release notes, " + "blogs, forum posts.", promptSnippet: "Extract the answer to a specific task from a single web page (URL + task)", promptGuidelines: [ "Use extract_page after web_search returns candidate URLs — give it the URL and a precise task so it returns only the answer.", "extract_page works on static pages. For JS-heavy or login/anti-bot sites (marketplaces, imageboards) it may fail — tell the user rather than looping.", ],
>>1689823 >Особенно давать такую реккомендацию на запрос >> "У вас есть какие-то проверенные практики или готовые инструменты для разделения задач?" Я хуй знает, как ты понял оригинальный вопрос. Я его понял как "каким образом промтить агентов, чтобы их отдельные высеры объединялись в работоспособный результат". Я сомневаюсь, что чел там спрашивал, с какой периодичностью ему устраивать созвоны.
>То, что ты прочитал "современные рекомендации по работе с кодом" Я читал про SOLID. В википедии. Это прикольно, что ты думаешь, будто лучше меня знаешь, что именно я делал, но ты немного похож на самодовольного долбоёба.
>Но искренне не понимаю в чем твоя проблема с тезисом, что он нихуя не значит. Потому что я использовал эти принципы на практике, и они дают объективно фиксируемый результат. Я уже говорил, в чём заключается эта объективная фиксируемость - изменения в одном месте не ломают код в другом, добавление новых фич не становится всё более и более сложным по мере роста проекта. Нахуй мне соглашаться с тезисом, что SOLID нихуя не значит, когда я его (конкретно его) использовал, и получил результат, на который рассчитывал?
>>1689829 Есть условный кооперативный диспетчер задач, в нём есть вектор указателей на ITask. Для простоты пусть он в рантайме проходит по всем элементам по очереди и дёргает им виртуальный метод do_work(); Задачи создаются по мере дописывания функциональности проекта, наследуясь от ITask, и докидываются в диспетчер. Как это чисто реализовать без виртуальных методов?
Если на крестах, но у тебя список не меняется в рантайме, то можно на темплетах аппенд наколдовать разнородных структур с одинаковой сигнатурой метода и после компиляции это будет просто мегаметод по размерам
По сути RegisterComponent(struct_with_same_method_signature1); RegisterComponent(struct_with_other_method_signature2);
Если задачи статичные, можно список инциализации хранить в 1ом методе, у меня текущий проект так делает.
Ну и в конце концов можно эмулировать виртуальность через указатель (а если у тебя будет указатель на глобальную таблицу и наследование там, то ты навелосипедил С++ vtable) struct { int ()(void) task; void ctx; где в ctx ты кладёшь this, и там дальше поля дрочишь. }
>>1689843 У нас с тобой разное понимание "нихуя не значит" Я считаю, "нихуя не значит" как "нихуя не значит конкретно". Как "сложившиеся практики" или "принципы проектирования" нихуя не значит без уточнения какой яп ты используешь и какая у тебя редакция ответа на вопрос, так че же там конкретно значит SRP, и могу ли я делать все синглтонами (формально - да)?
> "У вас есть какие-то проверенные практики или готовые инструменты для разделения задач?" Я это понял как "как пилить задачи агентам".
Работоспособный результат агенты производят и так. И билд пускают и тесты тестят перед сдачей куска. А SOLID это вообще методология. Отношения к работоспособным результатам не имеет, максимум представим волшебный кейс, где сетка пилит кривой код и ты попросил делать по солид и сразу заебись стало. Но суть не меняется, работает и так и сяк.
Ну и глобально солид спорный У тебя в викепедии же про LSP "Саттер и Александреску в отношении C++ интерпретируют принцип таким образом" Ну тип ИНТЕРПРЕТИРУЮТ. Ахуенно
OCP настолько базированный, что ZIG (я конечно ловлю хохотач с ЯП который на соплю лучше Сей), активно не имплементит private как концепт https://x.com/debasishg/status/1931723883419484603?lang=en И у этого подхода есть сильные сторонники. И это мега хайповый ЯП для нетакусиков Из более ранних python/php/c, активно заигнорил OCP и хуй клал)
Ну и солид я читал в исходнике, у Мартина. Я правда читал его уже будучи попытным пограмистом, поэтому достаточно забавно было читать как предки на жава 5 изголялись выдумывая говнопринципы которые применимы тольком только к жаве. И было вдвойне забавно смотреть как мартин отчаянно ебётся в жаве с зависимостями там, где в С++ у тебя наружу торчит чисто declaration.
Кароч. Солид круто конечно и база (если ты жавист), но за горизонтом такого себе принципа от боба мартина есть вещи посерьёзней. Ну и он весь сокращается до SRP, остальные спорная параша. А еще он никак себя не интерпретирует. Буквы дали - смысла за ними не пояснили. SOSAL своего времени
Знать че эта за хуйня нужно только для прохождения странных этапов собесов где тебя пытается проскринить HR специалист, а не твой будующий лид.
>>1689587 Отреверсилось всё нормально. Но как-то непродуманно DLSS 5 сделали. С path-tracing стулья с пиками и хуями, походу это всё же как замена трассировке должно быть. Реконструкция лучей в DLSS совмещена с апскейлом, это заебись было. Но теперь нейрорендеринг идёт отдельным этапом. И тут три стула, все хуйня: 1. реконструкция с апскейлом -> нейрорендеринг. Это походу то как задумывали зелёные, производительность в пизде, т.к. нейронка в полном разрешении работает. 2. NRD -> нейрорендеринг -> апскейл. Ну тут качество лучей хуйня. 3. нерорендеринг -> реконструкция с апскейлом. Тут уже проблема в том что нейрорендеринг не видит path-tracing, свет придушенный. Причём в первом варианте он рендерится дольше чем вся моя трассировка, хоть у меня и дохуя фпсов в запасе, но это уже до 70-80 фпс просаживает на балансе. Местами неплохо дорисовывает, местами хуйня, вот на втором видосе красиво тень от GI дорисовывает. На голой растеризации наверное больше профитов будет, если он будет давать шейдинг похожий на трассировку. Текстуры и PBR местами интересно перерисовывает. 3 режима стиля есть, 5 крутилок эффектов - можно что не нравится открутить.
Но он не предлагает КАК это сделать конкретно. Буквы дал. Интерпретируй
Никакой конкретики open\closed это нахуй что? Single Responsibility это нахуй что? Он придуман вообще для ООП япа. Что делать если у тебя нет ООП и ты на сях пишешь? Костылить себе ООП?
> писать код который можно прочитать и понять > который не развалиться если в него тыкнуть Вот это кстати ТВОЯ ИНТЕРПЕРТАЦИЯ Ебало представь, ты только что придумал свой СОЛИД. Потому-что исходный не имеет единой интерпретации.
Кстати, под это все попадает буквально любой стиль кодирования. Даже императивный. В своё время был зверски популярен и "базой". Все умели его читать и понимать, а еще он так гибко расширялся готошками - закачаешься
SOLID это SOSAL своего времени. Ничто не ново под луной
>>1689898 Нету такого поинта у SOLID. Чисто хрень для тех, кому хочется казаться умным, особенно на фоне посредственного образования (такая компенсация), кто дозрел, чтобы стремиться казаться умным, но ещё не перерос эту херню.
При этом хрень про ООП времён раннего C++/Java, где своя модель ООП, на многих других языках модель другая. При этом сам дроч на ООП идёт из 90х и начала нулевых, позже уже не было такого трепетного отношения, современные языки уже не так поддерживают всё это ООП, взамен поддерживают другие вещи, там first class function и т.п.
В целом сами принципы разумные, но и довольно очевидные, и очевидно не стоят того, чтобы с религиозным рвением заучивать аббревиатуры и сакральный смысл каждой буквы.
>>1689900 >расширялся готошками - закачаешься готошечки изначально считались антипаттерном, хотя есть узкие задачи, где они хорошо работают, когда у тебя реально реализация чистой машины состояний. Но это довольно редкие случаи.
Но в целом да, SOLID это по-определению про ООП, причём многие концепты спорны, не всегда уместны, и проблема, когда им пытаются следовать потому, что так написано. Вот тот же single responsibility. Реально попытка следовать может приводить к адскому коду там, где без этого было бы хорошо.
Тут заставь дурака богу молиться.
Изучить эти вещи полезно, чтобы идеи понимать, но вот не больше. Понимать идеи не означает, что тупо их лепить всюду. Жизнь сложнее.
>>1689902 Чел, это буквально одна из вариаций сосал для нейронки) Методология по названию - буквально определение SOSAL
SOLID = SOSAL
> что это работает на нейронках лучше
Если дать агенту сгенерировать скилл-методологию по Success-Oriented Software Architecture & Logic, есть риски сгенерировать что-то более качественное, чем по SOLID, не шучу.
SOS_AL — это способ мышления о структуре системы, а не исполняемая команда. Применяй его как линзу при проектировании, ревью и рефакторинге: когда планируешь новую систему, разбираешь «переусложнённую» или хрупкую архитектуру, проектируешь потоки запросов/состояний/ошибок, или распутываешь вложенный код обработки отказов.
Прям сегодня применяется. И всегда применялся. goto буквально ходовейшее ключевое слово в современной разработке на СИ так как кратно упрощает типичный construct/cleanup design.
> Но это довольно редкие случаи. По факту все где выделяется память по хорошему должно на failure path иметь готошку в клинап. Что по сути ровняет число юзкейсов с ключевым словом malloc, а это часто. Можно без этого, но будешь дрочится с if(has_error) и прочей дрянью и обязательно пофармишь двойной клин или чет утечёт.
Считать гото антипатерном - это просто не разбираться в теме его применимости (что нормально, тру Си не С++ программеров так еще и со скиллом тупо мало). Эту хуйню носят после того как в очередной раз почитали мартиновский тейк около солида и прочих практик. Там рядом с годметодом лежит.
В остальных ЯП может и имеет смысл оформлять истерику при его виде, но не в сях
В остальном соглы соглы +++ Но очень уж популярно у далёких от тематики людей гуглить топ 100 вопросов для собеседования и неиронично их спрашивать у кандидатов. Там всегда dRY kiss yagni solid и прочая параша
Как можно отрицать Single Responsibility? Принцип говорит нельзя одним кодом обслуживать несколько потребителей с противоречащими требованиями. Вроде долбаебу даже очевидно что лучше даже копировать код, но не усложнять его логику, чтобы примерить противоречия.
Как можно отрицать принцип Open Close? Трудо добавть новые стратегии, вместо того чтобы редактировать уже созданное и бояться поломать пользователей этого кода?
Принцип подстановки Liskov. Это не про типизацию, а про прощадь квадарата и прямоугольника. Кто должен быть базовым классом прямоугольник или квадрат?
Interface Segregation отрицаете? Любите годобжекты - авось понадобится все методы подряд вызывать?
Dependency Inversion отрицаете? Не знаете что абстрактное не должно зависеть от конкретного? Не знаете как работают плагины?
>>1689916 > Single Responsibility? Потому что это говно редуцируется вплоть до ассемблера и перекладывания по регистрам в зависимости от того, с кем ты говоришь. Вот для кого-то single responsibility это .all_done(). Ну делается же, ответственность делать круто. Для кого-то - неееет мы не можем перемешивать доставочный и упаковочный протокол, поэтому в коробке из под додо пиццы положим говно, а в него сунем бумажку {"code": 200, "message": {"400": "balans ne sweden"}}, кто-то еще мельче нарежет. Большая часть разговоров за солид состоит из того, где тут сингл респонсибилити, и как правильно сегрегировать интерфейс. Почему бы просто не делать хорошо, как предписывает SOSAL, а плохо не делать? Зачем ты очитаешь очевидную вещь, которая даже курсорохолопу с композером понятная? >>1689920 >SOLID - четкие принципы. Ты моего солидного одноглазого змея еще не трогал, вот там солид так солид.
> Это не про типизацию, а про прощадь квадарата и прямоугольника. Кто должен быть базовым классом прямоугольник или квадрат? Я понимаю, что это нейрослоп. Но это даже звучит тупо
С другой стороны, хуле мимокрокам 0ч программирования пояснять почему их школьные примеры с котиками и собачками идут нахуй и солид как методология едва ли применим в реальном коде ведь не предписывает конкретики, а срёт абстрактное нихуя где в треде уже пролетело 3 раза левая хуйня которой в солиде по факту нет.
Хотят свои сосалы применять - пускай. Только вот отрицать, что это SOSAL не нужно
>>1689926 Я - открывал Причем обе желтые книги перевыпуска 21 года
Как пруф, в чистом коде БОБМАРТИН ОСУЖДАЕТ использование популярной ныне (~2005) схемы кодирования навеянной Java Beans через getter/setter логику.
Там кароч до Rest\API хуня и геттеры сетеры нужны были чтобы beans летали по сети, этакий объект по интернету получается.
Сам же мартин предлагал си-стайл DTO class { pulbic: int a; String b; }
Представили? Геттеры сеттеры уже 20 лет срут в коде из-за дизайна библиотеки для жава в 2005 году. Пизщдец
>>1689929 > "Чистой архитектуре" чел сложными словами описал mvc, насрал солидом, объебался в его же интерпретации и подефал свой просёр в чистом коде и представил листинг своего ценного парсера покороче
Достойных примеров я там не видел, а все что сказано - касается жавы
>>1689916 >Как можно отрицать Принципы вроде SOLID нужны для больших ООП проектов, где много однотипных классов. Они не на всё ложатся.
Есть известные принципы, вроде "хуже обобщений на основе одного случая только обобщения без случаев", "не стоит делать преждевременную оптимизацию" и прочие KISS.
Вот есть у тебя какой-то специфичный класс с десятком методов. Тебе НЕ НУЖНО разделять их на несколько интерфейсов разной ответственности, пока у тебя нет ситуации, что куча классов, и есть общая ответственность, что кем-то используется.
Потому что это только усложнение ненужное. Не всегда можно безболезненно изменить. Часто пользователям нужны все методы, для разной ответственности. Но ты будешь плодить кучу интерфейсов (особенно у уёбищной java, где на каждый класс-интерфейс свой файл), в куче мест их декларировать, и всё без какого-либо смысла вообще.
То есть на самом деле тут чем монолитнее, тем лучше, потому что уменьшается количество связей. Но надо думать про переиспользование и т.п., короче тут тупо нет универсального решения. SOLID же ударяется в религию.
>>1689937 >Принципы вроде SOLID нужны для больших ООП проектов А я давно не делаю laba2 >Есть известные принципы KISS Есть еще принцип - простота хуже воровства. Если у тебя есть класс с десятком методов у тебя уже с вероятностью 90% есть десяток ответственностей и несколько пользователей этих методов которым не все методы нужны. >Потому что это только усложнение ненужное. Нужное челу который не один проект до продакшена довел и знает что делает и что будет в конце >То есть на самом деле тут чем монолитнее, тем лучше Пока не придут неожиданные хотелки от заказчиков
Сейчас гулял и думал о том как живу. С нихуя пришло осознание что я уже стал оператором иишки и перестал быть программистом. Нейросетки буквально так быстро перемалывают код и решают задачи вне моей компетенции что при всём желании за ними не поспеваю. А останавливаться и руками всё валидировать, разбираться, править как нравится мне - это как пытаться слезть с иглы, понимаешь что нужно, но ты уже на таких спидах с которых не возвращаются
>>1689952 >А я давно не делаю laba2 Уже туду-лист for enterprise реализовал?
> Если у тебя есть класс с десятком методов у тебя уже с вероятностью 90% есть десяток ответственностей и несколько пользователей этих методов которым не все методы нужны. Ну и что, что не нужны? Тебе разделение актуально не тогда, когда много лишнего, а тогда, когда одному пользователю ты передаёшь очень разное, при этом имеющее что-то общее.
Опять же, это актуально для всяких Java, где тебе надо явно декларировать интерфейс. В языках, где ООП протокольного типа (он же duck typing), вроде питона, это не актуально.
> и знает что делает и что будет в конце >Пока не придут неожиданные хотелки от заказчиков Чел, ты противоречишь себе уже через строчку. Ты в реальной работе никогда не знаешь, что будет в конце
Если ты чётко знаешь, что потребуется, то разделяешь. Если нет объективных причин полагать, забиваешь на это сектантство. Если что, потом рефакторишь.
>>1689868 >Ну и в конце концов можно эмулировать виртуальность через указатель (а если у тебя будет указатель на глобальную таблицу и наследование там, то ты навелосипедил С++ vtable)
И что я таким образом получаю? Ту же самую виртуальность, только "социально приемлемую" ведь в ней нет слов virtual и override, но она точно так же раздувает код на пару указателей, и её точно так же нельзя заинлайнить для оптимизации? Только теперь мне надо самому ебаться с войд указателями, как в сишечке, и следить, чтобы я не кастанул случайно дробовик в дилдак и не отправил твоей мамке?
Про шаблоны ты и сам сказал, что это подойдёт только для списка, который не меняется в рантайме, а менять список задач в рантайме это фича которую не хотелось бы иметь? Не хотелось бы, чтобы задачи выкидывались из вектора по завершении или не могли спавнить подзадачи, добавляя их в вектор? А ради чего, ради того, чтоб пацаны на раёне уважали?
>>1689885 По поводу SOLID я завязываю с тобой спорить, потому что спорить одновременно с тем, что SOLID ничего не значит, и с тем, что это набор банальностей, которые и так все знают — это шиза, я так не умею (дальше это ты там с кем-то другим спорил, не со мной)