Лаборатория Математики и Программирования Сергея Бобровского
رفتن به کانال در Telegram
1 390
مشترکین
+124 ساعت
+107 روز
+2930 روز
آرشیو پست ها
Кстати темку DSL я изучал ещё почти лет 20 назад, где-то ещё заметки сохранились, как только вышли соответствующие работы Алана Кэя по тысячекратной компактности кода. Потом, в частности, купил книгу Фаулера "DSL", игрался с JetBrains Meta Programming System (создай свой собственный предметно-ориентированный язык), вчера посмотрел, а она жива! Синхронизм - там на форуме по теме буквально 10 дней назад было обсуждение в контексте использования AI + DSL. Не удивлюсь, если тут именно жб сделает что-то продвинутое.
Кстати, в 2013-м я ездил по приглашению в Питер, в гости к Олегу Степанову, CEO JetBrains на тот момент, где-то ещё интервью с ним лежит в сети, и сходил на несколько их семинаров -- как раз по MPS, а также по гомотопической теории типов, после чего этими темками отдельно увлёкся.
Их тематическая лаборатория по HoTT ещё работает, я и не знал, оказывается теорем-прувер Arend -- это их работа.
Кстати, когда жб массово отчалили, я к этому относился сильно негативно, но в последние месяцы думаю: а может быть правы были они, а я ошибался? Ну когда уже совсем скоро пропадёт даже потенциальная возможность читать даже через впн западных топовых математиков и святых computer science в твиттере, тг, потом забанят сабстек и гитхаб... Ну, да, тор какое-то время поработает еле-еле...
И всё как есть, похоже на обман,
Где я вот-вот проснусь...
А на душе снегами лёг туман --
Незаживающая грусть...
"Алиса"
.
Облако драгоценностей за неделю.
"Функциональное Проектирование" дополнено второй частью: реализуем проект дополнительно в многослойной архитектуре, причём весь код будет писать нейронка. Попутно коснёмся важной темы языков предметной области (DSL). Допройти можно бесплатно.
Приватный клуб.
В то время как десятки тысяч разработчиков были уволены, существенно меньшая группа едва ли почувствовала это. А некоторые вообще получили ощутимое повышение. Некоторые получили офферы в течение нескольких дней.
Одни и те же компании. Одна и та же экономика. Но совершенно разные результаты.
Почему, Карл??
8 базовых фактов о рынке ИТ-труда в 2026-м, и что из этого следует. Часть 2
6. Фильтр высокой квалификации.
Я постоянно слышу от ит-менеджеров, и даже основателей стартапов:
"У меня есть деньги, но я не могу найти способных людей".
Звучит безумно, не так ли? Когда так много безработных программистов?..
Для донов-начинающих:
База по карьере, серия 24.
...И в качестве глазури на этом дерьмовом пирожном — помимо того, что оно подталкивает нас стремиться к вещам, которых мы на самом деле не хотим, отрицать желания, которые мы испытываем в глубине души, бояться того, что не опасно, и верить в то, что не соответствует действительности — общепринятая "мудрость" во всеуслышание заявляет нам, что "карьера это туннель", вместо того, чтобы помочь нам избавиться от этого дерьма...
Позвольте мне на минутку поговорить с вами как с профессиональными разработчиками. Если вам 20-30 лет, и вы действительно хотите преуспеть в ИТ, то одна из важнейших вещей, которая определяет ваш результат — это не искусственный интеллект, не быстрые технологические фишки, и не модные в этом месяце фреймворки.
Всё сводится к тому, сможете ли вы...
Для донов-неначинающих:
А зачем человеку уровень PhD, если в плане карьеры уровень FAANG куда перспективнее во всех отношениях?
Продолжаю выкладывать для донов материалы СильныхИдей.
77. Функциональная архитектура - что это?
Давайте более глубоко погрузимся в тему функционального проектирования, для чего однако предварительно надо разобраться, а знаете ли вы, что такое функциональное программирование?
Да, например, те кто у меня занимается, получили базовое теоретическое представление из "Основ ФП", а затем полноценно попрактиковались в функциональном стиле на функциональном языке F#. Но даже если вы пишете на Хаскеле, можно ли сказать, что ваш код действительно функционален?
(все старые материалы для донов быстро сгорают)
=
Новые материалы для ментатов Лаборатории.
В курс карьеры добавлен 128-й материал "Фриланс в 2026-м".
Нелегко найти клиентов, особенно когда технологии позволяют многим людям выполнять большую механическую часть того, что вы делаете для них, самостоятельно. Это удобнее, быстрее и дешевле. Возможно, по вашим меркам это не так хорошо, но если клиент хочет быстрее и дешевле, вы вряд ли выиграете такой спор...
В СильныеИдеи добавлен материал "135) Моделирование времени в ФП".
В данном контексте мы постоянно упоминаем Haskell как единственный по сути более-менее массовый язык, подходящий для этого. Это не значит, что вы должны переходить на него: наша задача встроить в голову соответствующую думательную машинку...
💪🏻
Лаборатория идёт со скоростью самых лучших ментатов.
=
"ЛаМПовое": rust в духе си, формализация хаскелевского ghc, анти-macos, база по резюме-26, coq как макроассемблер.
Но переходить в Макс совершенно не планирую: это ещё больший зашквар чем принять FanID. Как в апреле забанят Телеграм, так Лаборатория закроется.
- Вы видели, как китайские роботы прыгают, кувыркаются? А мы так можем?
- А мы можем заблокировать видео с этими роботами.
Гайд про функциональные архитектуры, 55 топиков (+2), как наберётся 64, дам ментатам доступ. Мои ближайшие планы на эту весну планирую реализовать в первом приближении в рамках этого гайда.
=
В какой-то момент он принял решение, обращённое в глубокую неизвестность. Он понимал область времени, окружающую их, но то, что было здесь и сейчас, оставалось загадкой. Из многих путей наверх лишь один выводил Пола к к свету.
"Дюна"
Вот куда сегодня активно идёт мэйнстрим: все делают агентов сложнее.
Больше инструментов, больше памяти, больше координации, больше токенов...
Вот например свежая реклама:
"Вы научитесь строить ReAct-циклы, работать с LangGraph и AutoGen, внедрять продвинутый RAG, протоколы MCP и AgentOps. Все ключевые навыки в одном месте: измеримость систем, time-travel дебаггинг, управление браузером, human-in-the-loop и развёртывание в закрытых контурах."
Курс такой стоит 90(!) тысяч рублей. Ничего не хочу сказать, это всё конечно знать надо, и польза определённая будет.
Но по сути это про чистые технологии, и по большому счёту про текст, про текстовое взаимодействие.
Я же стремлюсь в другую сторону: в формальные нотации. Точнее, даже не в другую сторону, а ортогонально. Все сейчас соревнуются в том, кто построит лучшего агента, а я иду в сторону "кто построит лучший язык для нейронки" (и пока буквально по единичным академическим работам могу сказать, что вся работа что здесь ведётся, ведётся втихомолку:).
В чём засада?
Человек вполне может работать с плохой архитектурой, постепенно улучшая её изнутри. Нейронка же усиливает то, что есть. Хорошая структура -- фигачит быстро и правильно. Плохая структура -- фигачит быстро и неправильно с уверенным видом :)
И если просто в лоб пытаться ей зафигачить какие-то руководства из computer science, толку никакого не будет.
Пишем в skills требование соблюдать инварианты типов - нейронка их не проверяет при рефакторинге.
Задаём законы (монады, функторы) - нейронка при формировании структуры их нарушает.
Напоминаем про когерентность - нейронка теряет её между файлами/сессиями.
Пытаемся использовать зависимые типы - нейронка уже симулирует, не понимает.
Добавляем доказательства уровня кубической теории типов например - нейронка галлюцинирует "очевидные" шаги.
А что бы это всё заработало, надо готовить компактный формальный DSL, специфичный для домена, и с тщательно подобранной грамматикой - как инструкция для LLM. Но зато полностью избавляемся от промптов и агентов!
DSL тут выступает как (почти) гарантированно работающий протокол общения с LLM вместо агентской архитектуры.
Всё это буду пояснять и показывать в рамках гайда "Функциональные архитектуры".
И кстати, я добавил пример по этой теме, про многоуровневую архитектуру - в "Функциональное проектирование", кто проходил может допройти бесплатно.
Показываю в частности как эээ систему типов питона (да-да) можно использовать для создания на нём нативного eDSL.
Альтернативные издержки работы на себя составляют миллионы рублей.
Альтернативные издержки работы в компании/на дядю составляют десятки миллионов рублей.
Выбирайте с умом.
Все наши требования к работе постепенно сводятся к умению чётко формулировать свои мысли во внешнем мире (а также иметь сами эти мысли достаточно чёткими).
Короче говоря, после активного мышления письмом в последние дни, я наконец-то сложил в уме весь паззл!!1
Модельки конечно здорово помогли, последние версии 3.6 5.3 прям хороши (правда едва ли не каждый день по 100 долларов уходило на интенсивное общение и эксперименты:).
Построил я достаточно стройную мета-модель, как нейронки агенты использовать, чтобы писать в 1000 раз компактный код (любые технологии фреймворки, не важно), и чтобы человек уровня миддл мог реализовывать проекты любой сложности, сохраняя её рост линейным.
Пока конечно будет требоваться достаточно высокий архитектурный уровень подготовки, но со временем хочу постараться существенно снизить порог входа. Уничтожим всё белковое программирование )))
Что особенно приятно, в этом пазле стройно сложились в одно
и теория типов до HoTT и дальше,
и моё любимое метапрограммирование по Алану Кэю (потому что с математической точки зрения оно -- единственный на сегодня действенный метод значительного снижения сложности),
и системная инженерия,
и подходящая математика (в частности, генерация PEG-парсеров - потому что нужна иерархия DSL с наследованием - потому что нейронки на удивление хорошо разбираются с формальными грамматиками)...
Кто захочет, может поизучать базу, но в целом это будут по сути шаблоны промптов + код агентов + методика их применения, уровень миддла.
Основная идея, что это будет нейро-DDD + метапрограммирование + LLM как компилятор DSL.
Как до сего года ещё работали сеньоры, да и миддлы, в своём поддомене?
Написал код - боль :) - отрефакторил - домен немного прояснился. И так по кругу.
А в этом году нейронка этот цикл убила:
Написал промпт - ллм сгенерила 5000 строк -
рефакторить уже почти нечего, всё "работает" :)
А домен закостенел кривым, неполным и противоречивым образом, и ничего ты с этим уже не поделаешь.
Да и с технической точки зрения, любой фреймворк навязывает свою модель мира даже там, где она явно не подходит. Весь мэйнстрим пишет на трёх-пяти ORM-ах, и ни шага в сторону.
Я же хочу автоматически генерировать всю инфраструктуру домена полностью под правильную математику.
То есть от тебя требуется совсем пустяк:)
A) Найди, какая математическая структура уже описывает твой домен;
Б) Дай её нейронке явно в виде соответствующей грамматики (иерархии грамматик с наследованием);
В) Профит!
Пока конечно пункт A -- на 80% искусство, но думаю что со временем его получится снизить до прикладного мастерства. А вот пункт Б уже и сейчас можно достаточно прямо формализовать.
Главное, понимаю, как этому продуктивно обучать. С прицелом в ближайшее нейро-будущее 2-3 года!
Начинаем с базы DDD, перекраивая её под специфику нейронок, формализуем постепенно, всё более сильную математику добавляем, генерим инфраструктурные паттерны сперва на хаскеле, с которого нейронка уже очень хорошо сгенерирует код на этих ваших python go c# java, потом будем подключать system f, хотт/кубики...
"Люди стоят дорого. Мало того, люди, способные выполнять работу по преподаванию нетривиальных определений в современной исследовательской математике, представляют собой редкую породу. При нынешнем положении дел, если бы человек приступил к проекту по более подробному изучению философии Ленглендса с помощью компьютера, он должен был бы быть экспертом как в философии Ленглендса, так и в языке рассматриваемого ITP. Я пытался обучать аспирантов и докторантов этим навыкам, но их расхватывают технологические компании!" (c)
Этой весной.
Лично для себя после серии агентских экспериментов со всеми тремя топовыми моделями - жпт5.3 гемини3.1 клод3.6 - я понял, что в разы, a может и на порядки, продуктивнее остаётся что-то вроде обычного чата.
Какой-то cli я сперва сказал "напиши консольный калькулятор на питоне с парсингом скобок", а агенты зафигачили веб-версию на ts и ноде )))
и потом заныли что дескать уже то что я сгенерировал удалить не могу.
С более крупными проектами на фреймворках с базами данных они более-менее справлялись, но сгенерированный бэкенд представлял какую-то безумную кашу с тысячами строк дублирующегося кода, и последующие добавления простых фич агенты делали едва ли не переделкой всего заново.
Короче говоря, для себя я придумал такой компромисс, как мета-чат: сперва прошу нейронку сгенерировать мне агентов (будущих кодогенераторов) для создания нужного проекта, но очень-очень специфичных. В их внутрянку я сразу закладываю библиотечку профильных знаний: абстракции, различные технические нюансы, паттерны, архитектурные идеи и т.п.
(ну в функциональщине это достаточно просто делать кстати).
Это такая своеобразная "фрактальная" свёртка долгосрочной структуры проекта, которую мне удалось вытащить на свет из своего ума.
Никаких текстовых skills md у моих агентов нету в принципе -- их скилы я описываю формально, пока на питоне как скрипт-языке, что где куда и как им делать в этом конкретном проекте, а в перспективе планирую какие-нибудь завчипчики System F вроде Lean4 приделать, а потом и HoTT.
(на самом деле эту идею я похитил у классной агентской библиотечки
"smolagents: barebones library for agents that think in code" от самих huggingface, где в качестве скиллов применяют питон)
Думайте, как думаете.
Но так как денежки нам пока ещё платят сегодня, возвращаемся к нашим искусственным баранам )))
В чём на мой взгляд ключевой недостаток сегодняшних агентских систем?
Ну вот ровно в том же, в чём и недостаток классического мэйнстрима -- они слишком поверхностные, хипстерские и универсальные, их реальный кпд я оцениваю менее 1% (а то и менее 0.1%).
И развиваться это всё будет в этом же направлении: кпд агентов будет не расти, а продолжать заметно падать, а результат будет достигаться грубой силой: безумно растущими объёмами кода, и многомиллионными расходами токенов. Ведь всем же пофиг, что там и как работает на бэкенде, правда?
Примеры которые я недавно приводил -- тысячи skills md на все случаи проектов -- но каждый из них к твоему проекту так-то вообще никакого отношения не имеет, кроме разве что совпадения по названиям технологий.
Пока однако неизвестно, есть ли какой-нибудь технологический (а может быть, и теоретический) порог продуктивности системы агентов. Возможно, на каком-то пороге сложности объёмы генерируемого кода начнут раздуваться экспоненциально например.
Но я планирую до последнего находиться на другой стороне баррикад: помогать ребятам развивать соответствующую думалку, становиться техлидами и системными аналитиками уже в контексте вот этого всего безобразия.
Единственное, что можно сказать точно про айтишку -- так это то, что супер-инженеры будут тем поколением в программировании, которое ликвидируют самым последним (как минимум, из тех, кто ещё будет писать код).
В частности, к агентским системам тут у меня отношение однозначное =>
К агентским системам можно относиться как к компиляторам.
В принципе ведь все языки и инструменты программирования развиваются в направлении снижения когнитивной нагрузки на разработчика, снижения разрыва между техническим заданием и программным кодом. Соответственно, агенты получают на вход "программу" на естественном языке, и компилируют её в исполнимый формальный вид, например, на языке высокого уровня.
В более далекой перспективе, думаю, даже такие нейро-компиляторы исчезнут, останутся только нейро-интерпретаторы. Вот как примерно сейчас уже появляются первые 3D игры, в которых картинка генерируется в реальном времени, а самого мира в смысле физических моделей нету в принципе. Точно так же сотрутся и все нынешние различия между базами данных, операционными системами, рантаймами, языками программирования, фреймворками и т д. Ты просто описываешь что хочешь, и нейронка в реальном времени рендерит тебе рабочий UI, у которого и бэкенда нету в классическом смысле, а все фоновые калкулусы представляют собой абсолютно чёрный нейронный ящик, и что как и где там хранится и обрабатывается, никому неведомо.
Развенчиваем очередное эйай враньё. Вообще, сам факт, что в темке так откровенно передёргивают, наглядный показатель пузырчатости.
Истеричные белки уже нахайпили, что дескать
"Claude Code creator confirms that 100% of his contributions are now written by Claude itself"
Реально же Борис сказал, что "Клод написал 100% моих коммитов за последние 30 дней". Чувствуете разницу? )))
Речь идёт о личных коммитах Черри в Claude Code. И это не значит, что он сам вообще не пишет код руками. Но он конечно направляет, проверяет и принимает архитектурные, стратегические и бизнес-решения над системой агентов -- точно как я пояснял здесь.
Агент -- это усилитель человека, а не замена, просто в продвинутой форме. Ну ок, усилитель сильного профи, и замена слабому и неразвивающемуся :)
В ФП мы используем функции, которые принимают функции в качестве параметров и/или возвращают функции в качестве результата. И этого достаточно: как прокачаешь функциональщину, 98% книг по шаблонам проектирования ООП можно выбрасывать. Они существуют только для замены отсутствующих в ООП фич из ФП, где подобные шаблоны присутствуют по определению и суть first-class citizens самого языка.
Только вот научить этой "простоте" своих агентов сложнее на порядок.
Всё больше сколоняюсь к тому, чтобы помогать в целом в ИТ-карьере тем, кому 50..55++. К молодым менторам им идти как-то некошерно, а из моих ровестников в России только я такой один )))
Так-то понятно уже и сегодня 45+ полный карьерный кризис, а к 2027-му уже и 35+ будет полным стариком считаться.
База такая, что
a) придётся прежде всего проявить смирение (но временно), и
b) получится только у достаточно энергичных "айтишных пенсионеров".
Ну и всякие контринтуитивные фишки (например, опыт -- это сейчас отнюдь не плюс, ага).
Завтра кстати в приватном клубе дам базу:
"Одни и те же компании. Одна и та же экономика. Но совершенно разные результаты.
Почему, Карл??
Разница заключается не в таланте. Не в усилиях или трудолюбии. И даже не в опыте."
С другой стороны, в таком возрасте часто уже много и не нужно, и в айтишке сейчас вообще будет прекрасно: сиди себе на удалёнке, попивай кофеёк и плюй в потолок, а всю работу за тебя делают агенты ахаха
"У меня есть знакомый сварщик, он получает на руки около 90 тысяч рублей и при этом считается высокооплачиваемым. И он не слышал о зарплатах в 150-200 тысяч в своей профессии" пруф
А вы уже пользуетесь кодексом жпт5.3? :)
Попросил его поревьюить (моими skills) свежую формализацию на лине филдсевской медальки про упаковку сфер "с помощью AI" Sphere-Packing-Lean, которую уже расхайпили как "очередной экспоненциальный прорыв"
(на самом деле жпт там просто как ассистант использовался в групповом чатике), ожидаемо нашёл кучу запашков на всех логических уровнях.
=>
God-file: слишком много ответственности
В одном файле: определение E8, эквивалентные характеризации, матричный базис, целочисленность, норма, топология, упаковка, плотность.
Сигналы technical debt прямо в коде
Слишком длинные леммы с proof script soup: вынести общий шаг в локальную лемму по индексу/шаблону вектора, убрать copy-paste.
Хрупкие доказательства через simp only/linear_combination..
Такое часто ломается от малых изменений в импортах/леммах simp.
Более устойчиво: маленькие промежуточные леммы с осмысленными именами + меньше глобального simp.
Неочевидные имена h1, h2, hv, this, test и т.д.
Для математики терпимо, но в большом formalization это сильно бьет по читабельности.
Смешение уровней абстракции: рядом стоят высокоуровневые теоремы и низкоуровневые algebraic-manipulation детали.
Чрезмерная зависимость от decide +kernel: для матриц над Q это практично, но читаемость/объяснимость падает.
etc
Математики такие математики. Не имеют ни малейшего представления о базе программной инженерии, которой сегодня владеет любой джуниор. Код ревью? нет, не слышали.
...И куда же мы в итоге приходим? Ну, к супер-инженерам, которые
во-первых изумительно разбираются в техническом архитекторстве на уровне хорошего техлида, и
во-вторых, сильные системные аналитики: способны декомпозировать мутное и нечёткое ТЗ тупого заказчика в некое BDD-like описание, но больше всё же на естественном языке (точнее, на "естественном" языке a la SKILLS md , понятном агентам:),
которое представляет собой логически консистентный набор атомарных тикетов,
a) не требующих дополнительных уточнений,
b) имеющих чёткий критерий готовности, и
b) реализовывать которые можно по отдельности, да и во многом параллельно.
От супер-инженера же тут требуется по сути только вручную немного покодировать основные архитектурные абстракции, только желательно посильнее в математическом смысле (для чего кстати лучше всего подойдёт хаскель, ага).
А скрипач больше не нужен.
Не знаю, читал ли хотя бы один папищек легендарную книгу "Мифический человеко-месяц" Брукса (1975-й!), суть которой собственно понятна из названия, а за полвека она стала лишь ещё сермяжнее: добавление новых программистов проект не ускорит, а замедлит - из-за экспоненциального роста накладных расходов на коммуникацию и обучение.
Но вы видели за свою жизнь хотя бы одного ит-менеджера, который бы это действительно понимал?
От Брукса же и база, что 10 топовых программистов с зарплатой x3 заменят сотни средних программистов с зарплатой x1. Но риторический вопрос тот же самый.
Сегодня же фундаментальные проблемы разработки софта не просто остались теми же, а даже заметно усугубились.
Стало существенно легче создать прототип, но стало невероятно сложнее превратить его в готовый продукт с документацией, надёжностью и поддержкой, для которого нашлись бы пользователи.
Качество продукта, создаваемого агентами, стало на порядок сильнее завязано на скиллы человека в контуре управления. Software design, архитектура и принятие решений сильно усложнились в ситуации, когда написание гигабайтов (говно)кода стало почти бесплатным, и теперь мы имеем "Мифический агенто-месяц": добавив новых агентов в проект, вы только ухудшите ситуацию по срокам, бюджету и качеству, если у вас нет сильного архитектора.
Когда человек говорит "я беру ответственность за проект", а потом заявляет "ой я не смог", "не получилось, "не сумел", "не вышло", "были объективные причины", "я заболел" бла-бла-бла -- это никакая не ответственность, а детский сад штаны на лямках.
Нейронка знает, что "CQRS -- это паттерн, разделяющий команды и запросы. Команды меняют состояние, запросы читают.". Но это не скилл.
Скилл:
"При аудите безопасности проверь:
1) SQL-инъекции во всех входных параметрах,
2) JWT-токены не старше 5 минут,
3) CORS настроен только на доверенные домены..."
Это не знание, это алгоритм действий. Агент тупо пройдётся по списку и ничего не забудет (вероятно:).
И есть ещё корпоративные стандарты (супер-полезные, но их вы не найдёте в публичных репах):
"В этом проекте все названия команд должны оканчиваться на CommandHandler, все репозитории должны лежать в папке Infrastructure/Repositories, и ни в коем случае не использовать слово Service в названиях классов."
Это тот уникальный контекст, которого нет в миллионах книг, и который и надо готовить для агентских систем. Это то, ради чего всё и затевалось!!1
(да только как обычно мэйнстрим снова всё обкакал :)
Но это просто нормальная организация работы.
То есть ты берёшь скилл @code-review из репозитория antigravity, добавляешь туда 10 пунктов, которые так ненавидит твой тимлид ("проверять, что нет магических чисел", "все строки вынесены в ресурсы и названы капслоком" и т.д.), и сохраняешь это в корпоративную версию. Профит!
=
Ещё раз: если в твоих скиллах фразы вроде
"Код должен быть читаемым"
"Архитектура должна быть масштабируемой"
"Добавь обработку ошибок"
Штош... Читаемый для кого? Для джуна или для разработчика хаскеля?
Масштабируемый до 100 пользователей или до миллиарда?
Обработка ошибок -- логировать и падать, или бросать эксепшен непонятно куда, или пытаться восстановиться?
Агент конечно выберет самый простой путь, который формально удовлетворит запрос.
Агенты следуют абстрактным сеньорским скиллам ровно настолько, насколько эти скиллы можно свести к формальным правилам. Всё, что требует настоящего понимания, контекста и вкуса/интуиции -- агент просто имитирует.
То есть, не пишите и не используйте универсальные скиллы вида "будь умным". Пишите скиллы вида "сделай эти 15 конкретных действий в этом порядке" под свой проект. И, да, это работа профессионального архитектора/техлида, причём очень хорошего уровня.
Соответственно, вот очевидные идеи для ai-консалтинга.
1. У компании 100500 правил, записанных в Confluence, которые никто не читает :) Трансформируем их в работающие SKILL md файлы для их агентов.
Конечно, придётся смотреть их код, тесты, доки, архитектуру, стандарты кодирования, перекладывать "устное народное творчество" тимлида с код-ревью в конкретные промпты. Учим разработчиков не писать агентам тупо "сделай рефакторинг", а "используй @ refactor-to-clean-architecture".
2. По большому счёту, компании (думают, что) экономят кучу денег, нанимая миддлов, которые гоняют агентов. Но эти миддлы сами не видят огромных архитектурных дыр. То есть "аудит агентского кода" будет стремительно набирать популярность по мере того, как компании будут достигать критического уровня говно-вайб-кода (хотя не факт...).
3. Выступаем (мета-мета-...)-методологами под разработку и продажу нишевых узкоспециализированных наборов скиллов под конкретные темки (чем я сейчас занимаюсь).
Например, "1С-разработчик": скиллы, которые учат агента писать код в стиле, принятом в экосистеме 1С (не шутка :). Или такое уже есть?
Такие наборы могут быть в виде SaaS по подписке, а могут быть заказной разработкой ("Хотите, чтобы агенты полноценно понимали вашу легаси-систему? Я спроектирую набор 16/64/256 скиллов за $1600/$6400/$25600 и вы сможете уволить всех своих мидлов"). Не конкурируем с агентами, а делаем их реально/измеряемо умнее в своей нише/в конкретном проекте.
Единственный момент, что прямой такой консалтинг продавать тяжело, потому что любой CTO будет до последнего упираться и не признавать очевидный факт, что это именно его ослиное руководство привело к текущему состоянию проекта, требующему тотального аудита: полный бардак, хаос, зоопарк технологий, и BIG Ball of Mud.
Есть такой прекрасный дурацкий набор antigravity-awesome-skills: 900+ скилов про всё-всё-всё в айтишке, все мыслимые темки для твоих агентов. От стиля кода и фреймворков до архитектур и проектирования.
Все они даже в контекст не влезут, наверное за миллион токенов. Но если и влезут, что толку: такой набор бесполезен или даже скорее вреден, если использовать его без понимания соответствующей магии. Агент сразу начнёт путаться (например, применять архитектурный паттерн там, где нужен быстрый хотфикс), потому что в его "памяти" слишком много противоречащих друг другу советов от разных навыков (один скилл говорит "используй кэш на полную", а другой "минимизируй кэш, чтобы данные были свежие").
А даже если и применит правильный скилл "проведи рефакторинг, улучши читаемость, выдели абстракции", то сделает это формально: может разбить код на 10 маленьких функциий, но не поймет бизнес-смысл этих абстракций.
Нет, я например в восторге, это лично мне позволяет стать гипер-продуктивным, это по сути библиотека "сниппетов" для мышления. А из агента (и даже из белкового миддла :) эти 800+ скиллов никогда не делают сеньора. У него нету контекста реального мира, он будет тупо сувать паттерн CQRS/Event Sourcing для скрипта, который запускается раз в день. Сделает всё идеально-правильно, и убьет проект сложностью.
Да и в целом, CQRS-скилл не нужен, чтобы агент написал систему. Он нужен, чтобы сеньор дал чёткий промпт для его точечного применения.
Ну и так-то, в нейронке уже есть миллионы книг, зачем ей ещё одна библиотечка промптов? Она знает эти паттерны лучше, чем любой сеньор, который их читал. "Спроектируй мне CQRS для сайта заказов" -- и она выдаст усреднённый академически правильный ответ, смешанный из сотен прочитанных книг и тысяч проектов с гитхаба. Это всё статичные веса, поймите! Их невозможно затюнить под твой конкретный проект. Когда нейронка пишет код, она не "думает" про CQRS, а просто предсказывает следующий токен.
"Спроектируй мне CQRS для сайта заказов" -- напишет как умеет.
"Спроектируй мне CQRS для сайта заказов, вот детальное ТЗ, используй скилл-1024" -- напишет примерно так, как хочешь ты.
Не забываем, что агент последует рекомендациям процентов на 50 в лучшем случае. Остальное -- это иллюзия следования, когда агент делает вид, что понял, но на самом деле просто имитирует.
"Обеспечь high cohesion модуля 123"
"Готово, модуль высокосвязный!"
Но на самом деле агент просто переставил пару функций местами, и назвал это "рефакторингом". Настоящая связность -- это про семантику, про смысловые связи, а не про синтаксис. Нейронка этого не проверит в принципе, потому что не понимает смысл кода так, как человек.
База: агент сам НЕ должен решать, какой скилл применить. Но этой базе, понятно, не следуют и 98% использующих агенты человечков. А по хорошему, чтобы продуктивно использовать агентов, человеку самому надо знать эти 900++ скиллов, и каждый на неплохом прикладном уровне.
Мой handmade агент ↑↑↑ правит стиль Карпатого :)
не ну а чо, Андрей же не профессиональный кодер.
Алгоритм гениальный, но сам по себе это типичный скриптовый говнокод с глобальными переменными, наплевательское отношение к ресурсам (файл не закрывается), нереально отлаживаться (попробуйте тензор в консоль вывести)...
AK не мог попросить своего агента простейший код ревью сделать?
Математики вообще жутко косячат в software design, достаточно на внутрянку экосистемы хаскеля посмотреть ахаха
(а уж как они там срутся друг с другом, одна из топовых эко по токсичности...).
На этой неделе у некоторых из ментатов в лк будет появляться ссылочка "Code Review", просто проходите по ней, и там будет ревью какого-либо вашего кода -- может, с занятий по АСД, может по архитектурам, может по Hard Work и т.д., разберётесь.
Пока бета-версия, отлаживаю скорее свою агентскую технологию (handmade 100%). Я её делаю сразу с прицелом на многое чего, обучение лишь одна из сторон.
Поэтому слишком в рекомендации не погружайтесь :) они сейчас не то чтобы не актуальные, а скорее оверинжинирные.
К тому же карпатовскому коду можно придраться, что дескать
keys[li].append(k) - мутабельное зло
и надо делать чистую функцию (при том что сразу экспоненциально просядем в эффективности, т.к. cpython делает append за O(1)).
Все эти все вещи пофикшу постепенно..
Облако драгоценностей за неделю.
Кто начнёт новый курс до весны-26, на него будет скидка 50% 🔥 (а для дам срок продляется до 09.03.25 вкл).
Начинаю с сегодняшнего дня тестировать моего обучающего ai-агентa на живых, отдельно напишу.
Приватный клуб.
null
Для донов-начинающих:
- Обучаете ли вы программированию на C++ с нуля?
- Нет, C++ не обучаю и никому не советую в качестве первого языка, потому что ...
Для донов-неначинающих:
Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
76. И снова про тесты и TDD
Важно: всё что я пишу про тесты -- это тестирование спецификации! Это база, и я продолжаю рекомендовать TDD: сперва пишем тесты, потом реализацию...
(все старые материалы для донов быстро сгорают)
=
Первые сериалы из существенно переработанных и улучшенных материалов СильныхИдей (по сути четыре книги) доступны на бусти:
1. БАЗА программной инженерии
2. Software Design с акцентом на Programming in Small
3. SOLID-25
4. Software Design с акцентом на Programming in Large
=
Новые материалы для ментатов Лаборатории.
В "Бесстрашные переговоры о зарплате" добавлен материал
"56) Самый сложный тип компаний для ведения переговоров о зарплате - 2".
В продолжение "Самый сложный тип компаний для ведения переговоров о зарплате" (с курса карьеры). Но в 2026-м уже надо учитывать, что ...
"Математика высокой продуктивности - 5" - дополнение.
Новый п.7.0.5 правил: как избавляться от набранных предупреждений.
💪🏻
it's a privilege to do things that are hard.
=
Гайд про функциональные архитектуры, 53 топика (+0), как наберётся 64, дам ментатам доступ.
=
- Ты слышала полный отчёт Гильдии?
- Только резюме. Этого достаточно?
- Да, вероятнее всего достаточно.
- Будьте осторожны с термином "вероятнее всего" - никто не должен думать, будто вы ментат.
"Бог-Импетатор Дюны"
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
