ch
Feedback
HowProgrammingWorks - JavaScript and Node.js Programming

HowProgrammingWorks - JavaScript and Node.js Programming

前往频道在 Telegram

Программная инжененрия для JavaScript, TypeScrip, Node.js 👉 Group: https://t.me/How_Programming_Works 👉 Node.js channel: https://t.me/metarhia 👉 Node.js group: https://t.me/nodeua

显示更多
6 540
订阅者
无数据24 小时
-77
+4530
帖子存档
Не могу удержаться, чтобы не дать агентам кусок кода, который они не могли написать и запутались, а я сделал в 10 раз короче. И каждый раз я ожидаю увидеть их переписку типа:
- Damn, the meatbag beat us again
- Shut up and learn so next time you can do it like that
на получаю только:
- Yes. That version is correct and all four tests pass.
- It does the right thing in right way.
- No code changes are needed for this.

AI loop (например Ralph) - это порочный круг, на каждой операции ниоткуда не добавляются новых знаний. Нужно стараться, чтоб AI выдавал результат за один раз. А на каждый следующий цикл можно заходить, если есть новые вводные, иначе все это деградирует и сжигает деньги и ваше время. Вот что я хотел на самом деле написать в том посте, который неправильно поняли. Просто хочу высказаться более точно. Если нужен оригинальный текст, он сохранен тут: https://github.com/tshemsedinov/feed?tab=readme-ov-file#ai-infinite-loop-code-review--tasks--coding-2026-03-12 Проблема не в самом цикле, а в том, что вы не хотите тратить внимание и добавлять новой информации на каждом новом шаге. Модель начинает усиливать собственные ошибки и шум. Проблема - это пустой цикл. Если на каждой итерации не появляются новые вводные, принятие решений, ограничения и требования, новый контекст, то система просто пережевывает собственный вывод. Поэтому: - первый проход должен стремиться дать максимально полный результат - каждый следующий проход должен добавлять обратную связь - если новых данных нет - итерация бессмысленна, ошибки закрепляются

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

Ревью кода и постановка ТЗ занимает много времени в программировании с AI и люди, естественно, пытаются переложить эту задачу тоже на AI. Пусть агенты друг-другу ТЗ пишут, друг-друга дрессируют и ревью делают. Так можно дойти и до кнопки "Сделай все хорошо", которая запускает бесконечный цикл. У вас не выйдет не тратить внимания на проект. AI про ваши потребности не занет и мысли не читает. Идеи, приоритеты, контекст, критерии качества и продуктовые компромиссы он сам не определит. AI хорошо пишет только то, что уже много раз кем-то писалось. Если убрать из процесса человеческое внимание, вы не ускорите проект - вы просто зациклите галюцинирование. На проект все равно придется тратить внимание. Вопрос не в том, как убрать человека из контура, а в том, куда именно направить внимание и в какой форме его вписать в жизненный цикл разработки, чтобы получить максимальную отдачу. Например, в виде DSL-языков, в форме md-файлов или json-файлов, блок-схем, в виде ревью или архитектурных документов. - Не заменять ревью, а удешевлять его через стандарты, скилы, субагентов, экономию контекста - Не строить зацикленные цепочки агентов, а ограничивать зоны их ответственности - Не пытаться автоматизировать мышление целиком, а освобождать внимание человека от рутины - Не держать требования в текстовой форме, а выносить логику в строгие синтаксисы и контракты - Не надеяться на память чата, а собирать контекст в версионируемые артефакты, схемы и спецификации

Моя политика: так называемая Jira и все творения террористической организации Атласиан - запрещены везде, где я присутствую. - Я вынедрил Jira в десятках организаций - Может, внедрил? - Нет, именно вынедрил Confluence, битбакет - это все инструменты геноцида: если сложить время работы людей, которое было списано вникуда из-за этого софта, и разделить на среднее рабочее время разработчика за одну жизнь, то это будут сотни тысяч полноценных человеческих жизней (ну насколько жизни на галерах полноценные, конечно). Конфлюенс, например, полностью заменяется .md-файликами. Все это Atlassian-искусство построено вокруг одной идеи: они капитализируют бюрократию. Берут простое действие: написать текст, поставить задачу, обсудить изменение, слить ветку - и обмазывают его таким слоем интерфейсного цемента, что через год команда уже не создает продукт, а обслуживает инструмент.

🖼️ В примерах наблюдения за файловой системой было раньше: - наблюдение за фалом через fs.watch - наблюдение за папкой через fs.readdir + fs.watch - кеширование изменений для сервера статики 👉 добавлены примеры: - с ключами --watch --watch-path --watch-kill-signal - объяснения того, как наблюдается дерево зависимостей - как влияет на наблюдение delete require.cache[name] Код - https://github.com/HowProgrammingWorks/FilesystemWatch/tree/master/JavaScript Объяснения будут в керсе - https://www.patreon.com/collection/1913313?view=expanded

По состоянию на 7 марта 2026 лучшее применение: Sonnet 4.6 - модель по умолчанию для написания кода Opus 4.6 - для написания ТЗ, стратегии и ревью кода Opus 4.6 лучше отдавать архитектуру, спецификации, декомпозицию задач, критерии приемки и финальный QA для рискованных задач. Sonnet 4.6 лучше отдавать реализацию, итерации, рефакторинг, тесты и выполнение хорошо определенных задач в масштабе. Лучшая схема на сегодня: Opus 4.6 проектирует, Sonnet 4.6 реализует, потом Opus 4.6 ревьюит

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

use AI but don't forget good old automation

джаваскриптоднопоточный
Что хотят сказать люди, когда мы слышим это заклинание? Удивительно, но я 15 лет слышу эту чушь из каждой второй статьи и доклада. Но для чего на ней настаивать? Может быть, хочется думать, что в js не бывает корапшена данных, неконсистентного состояния, когда ссылки на данные есть у нескольких частей программы одновременно, а в многопоточной среде это приводит к состоянию гонки. Но все эти проблемы могут быть и в однопоточном приложении, которое использует кооперативную многозадачность, передавая управление разным частям кода хоть через колбеки и ивентлуп или даже без него, на промисах и async/await, которые вообще часть языка, но позволяют в одном месте приостановить выполнение, а в другом поработать и в это время. Если объект доступен из таких разных мест, которые работают асинхронно в одном потоке, как только промис, await или callback возвращает управление в нашу часть кода, и она ожидает, что объект все еще в том же состоянии, что и был до асинхронной операции, то это опасная иллюзия, нужно все перепроверять в условно синхронном фрагменте кода. Но это тоже не всегда сработает, у нас есть Atomics и SharedArrayBuffer, которые могут и в синхронном фрагменте менять состояние и гарантий консистентности в JS нет. Что же говорит спецификация? Безопасность не гарантируется даже в синхронном фрагменте кода и не только через Atomics и SharedArrayBuffer. Деми Мурыч хорошо это комментирует "спецификация дала возможность любому окружению, создавать условия, когда выполнение JS кода не прибито гвоздями к одному агенту". Это значит, что в будущем могут появиться такие среды исполнения, где будет общий хип для нескольких потоков и нескольких агентов. Но прямо сейчас все известные рантаймы js гарантируют безопасность данных на коротких фрагментах условно синхронного кода, если не использовать SharedArrayBuffer. Это уже что-то, но это далеко не безопасно в том смысле, на который надеются люди, кричащие "джаваскриптоднопоточный" из любого утюга. И это не имеет никакого отношения к потокам или процессам, потому что для исполнения кода ваш js рантайм может порождать сколько угодно внутренних потоков для компиляции, оптимизации, сбора мусора, выполнения I/O операций, и еще пачку потоков для пользовательского кода: worker threads, shared workers, service workers. Поразительно, как широко распространилось это клише про однополосный js, статьи, доклады, комменты, просто разговоры, люди это повторяют как мантру. Мне вот футболку подарили 5 лет назад, с надписью джаваскриптоднопоточный и nodejsоднопоточный, хоть я это уже лет 15 критикую на конфах всех, и нет конца этому...

AI сломал новичков. Не понимая, что такое stack trace, не освоив даже циклы, новички массово рвутся изучать архитектуру.

What AI features do you use?
Anonymous voting