惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The GitHub Blog
The GitHub Blog
博客园_首页
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
J
Java Code Geeks
Apple Machine Learning Research
Apple Machine Learning Research
有赞技术团队
有赞技术团队
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
Microsoft Security Blog
Microsoft Security Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
The Cloudflare Blog
MyScale Blog
MyScale Blog
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Вайб-кодинг или лудомания?
Константин · 2026-05-08 · via Все публикации подряд на Хабре

Вайб-кодинг или лудомания?

Простой

6 мин

15K

ZConnect - второй месяц вайб-кодинга, или как я делаю свой удалённый рабочий стол

Прошло уже больше месяца с прошлой статьи. За это время в моём проекте ZConnect появились передача файлов, NAT traversal, клики по UAC, установщик со службой, мультимонитор, адресная книга, Android-клиент, тёмная тема.

Поймал забавный краш в mrwebrtc 2.0.2 на нестандартных sample rates, выложил проект на GitHub и окончательно понял, что вайб-кодинг всё больше начинает напоминать лудоманию.

В статье расскажу: что удалось сделать; на какие грабли наступил; как ИИ помогает и мешает одновременно; и почему поддерживать большой проект в режиме «вайб-кодинга» оказалось утомляюще.

Вайб-кодинг захлестнул меня с головой. С коллегами мы уже называем это не вайб-кодингом, а настоящей лудоманией: постоянно хочется что-то добавить, улучшить, переписать или протестировать. И вот ты уже сидишь ночью с мыслью, что давно пора спать, но не отпускает идея: «Тут ещё чуть подкрутить», «Здесь добавить мелочь», «А вот это надо срочно проверить». И так несколько вечеров подряд. Устаёшь от этого довольно сильно. Плюс начинаешь следить за лимитами языковых моделей, остатком токенов и временем до обнуления подписки. После хорошей большой модели возвращаться на что-то попроще уже не хочется, кайф совсем не тот. Для меня сейчас это Claude x5 Opus 4.7 1M.

Как я случайно сделал ещё одно приложение

Пока вайбкодил ZConnect, отвлёкся на приложение для ребёнка - тренажёр таблицы умножения. Сначала хотел сделать просто карточки для умножения и деления. А дальше всё пошло как в тумане: рейтинг; аватарки; сезоны; музыка (тоже сделанная ИИ); достижения; темы оформления; магазин предметов; публикация в VK. И всё это - буквально за пару вечеров.

Самое долгое оказалось не написать приложение, а зарегистрироваться в VK как самозанятый. Налоговая оформила всё минут за 15 мин, а вот VK уже неделю не может нормально перевести аккаунт с физлица на самозанятого. Приложение называется «Дели Умножай»: https://vk.com/app54559906

Последний раз такой интерес и удовольствие от компьютера я испытывал ещё школьником или студентом, когда играл в World of Warcraft. Ощущения очень похожи: исследуешь новое, постоянно что-то прокачиваешь, только теперь вместо персонажа - собственное приложение.

Больше не нужно долго читать мануалы. Достаточно просто попросить ИИ: объяснить тему; сравнить подходы; подсказать архитектуру; или показать, как сделать лучше. Без ИИ эти приложения так и остались бы незавершёнными. Максимум - пара дней энтузиазма, а потом усталость и заброшенный проект.

Ещё несколько лет назад я с помощью ИИ писал в основном небольшие батники и скрипты, и даже там было много ошибок. Сейчас же спокойно можно делать кроссплатформенные приложения, разбираться в новых библиотеках и быстро собирать рабочие прототипы. Кажется, я уже все свои домашние и рабочие скрипты завернул в GUI с галочками и кнопками «для удобства».

Немного про название

Некоторых неожиданно триггернула буква Z в названии проекта. Честно говоря, я даже не думал, что это кого-то заденет. Но фамилия у меня Захаров, так что буква остаётся. А если узнаете, что я ещё и Викторович - получится совсем комбо :)

Что появилось в ZConnect за месяц

За месяц проект сильно изменился:

  • File Transfer - передача файлов в обе стороны (там ещё много багов, но базовый функционал уже работает);

  • NAT traversal - STUN + TURN fallback;

  • клики по UAC и Secure Desktop;

  • установщик со службой;

  • мультимониторность (Смотреть 1 или сразу несколько мониторов одновременно.;

  • адресная книга;

  • Android-клиент ZViewer;

  • тёмная тема;

  • TURN password rotation (RFC 8489 HMAC);

  • HTTPS и auto-update;

  • полноценная админ-панель;

  • и ещё куча мелочей, которые я забыл упомянуть.

главное окно

главное окно

Архитектура кратко

Сначала всё крутилось в одном процессе под SYSTEM - самой мощной учёткой в Windows. На бумаге удобно: доступ ко всему. На практике посыпались странные баги, и пришлось разбить на три процесса.

Service - фоновая служба под SYSTEM. Стартует до логина, узнаёт кто залогинился (WTSQueryUserToken) и запускает остальные два процесса с правильными правами. Сам ничего не рисует - из Session 0 рабочего стола пользователя не видно.

UI - главное окно. Должно работать только под учёткой пользователя, иначе:

  • DPAPI шифрует под SYSTEM → пользователь свои же пароли не расшифрует;

  • %APPDATA% ведёт в C:\Windows\System32\config\systemprofile, а не в C:\Users\Vasya;

  • DXGI-захват экрана из Session 0 не работает вообще.

InputHelper - отдельный процесс для UAC, Ctrl+Alt+Del и lock screen. Эти окна Windows рисует на «защищённом рабочем столе», обычный user-token туда не пускают (блокирует UIPI). Service запускает helper с токеном, скопированным с winlogon.exe - у того нужный уровень привилегий внутри пользовательской сессии.

То есть один процесс не подходит: SYSTEM не видит экран, user-token не пускают в UAC, а winlogon-token не запустится без логина. Подозреваю что TeamViewer и AnyDesk устроены примерно так же - просто это спрятано под капотом.

Сейчас схема такая:

примерно так

примерно так

Тестирование — слабое место вайб-кодинга

Понял, что делать новые фичи намного приятнее, чем тестировать старые. Добавлять кнопки, окна и возможности — весело. А вот проверять всё после очередного рефакторинга уже не так интересно. AI добавляет фичи быстро а я тестирую медленно. При этом тестировать приходится постоянно: после любого изменения может сломаться вообще что угодно.

Особенно много проблем было с File Transfer. ИИ регулярно путал: загрузку и скачивание; диалоги удаления и перезаписи, окна, в которых эти диалоги должны появляться. Иногда приходилось буквально доказывать модели, что приложение работает неправильно. На что ИИ мог ответить: «Скорее всего, у тебя старый билд». Очень напоминает некоторых коллег по работе :)

С автотестами ещё веселее — особенно когда ИИ начинает «улучшать» тесты.

тест до и после Работает!

тест до и после Работает!

Первый тест на живых людях

Первое тестирование на знакомом пошло не по плану. После подключения приложение у него начинало бесконечно закрываться и перезапускаться. Поймать проблему удалось только через WinDbg. Виновником оказалась старая библиотека Microsoft.MixedReality.WebRTC 2.0.2 (mrwebrtc). Во время PeerConnection.InitializeAsync библиотека перечисляет audio endpoints через IMMDeviceEnumerator и падает, если встречает sample rate вне whitelist.

Поддерживались только: 8; 16; 24; 32; 44.1; 48; 96 кГц.

А у знакомого устройство работало на 192 кГц. В результате — crash внутри native-слоя. Пришлось добавить audio preflight: перед запуском WebRTC проверяем endpoints самостоятельно; если находится неподдерживаемый sample rate — показываем предупреждение вместо падения. Думаю, такие устройства встречаются не так редко: USB-гарнитуры, внешние звуковые карты и виртуальные аудио девайсы могут работать на 192 кГц.

Костыль предупреждение

Костыль предупреждение

После этого всё заработало стабильно.

Security‑аудит несколькими ИИ

Раз в неделю я прогонял проект через разные ИИ: Cursor Composer; OpenClaw; ChatGPT; Claude.
Просил посмотреть на: архитектуру; потенциальные уязвимости; сетевую часть; баги и race conditions. Каждый выдавал свой отчёт. Потом я скармливал эти отчёты Claude и просил: отделить реальные проблемы от ложных срабатываний; расставить приоритеты; составить план исправлений. Такой «многоуровневый ИИ-ревью» работает surprisingly хорошо: один ИИ что-то пропускает; другой начинает параноить; третий помогает отфильтровать шум.

Забавный момент

Я оставил Ии исправлять баг, а сам пошёл наливать чай. Когда я вернулся, проблема уже была решена, но Ии всё ещё пытался её исправить. Он открывал приложение, делал скриншоты и удивлялся, что ничего не работает. Оказалось, что он запускал приложение на первом экране, а скриншоты делал со второго, где у меня были открыты «Ножницы» с багом программы.

Все мы такие.

Все мы такие.

Планы

Пока планы такие: перейти с древнего M71 на более свежий WebRTC; попробовать M148 через собственный minimal C ABI wrapper; разобраться с Winlogon; продолжать поддерживать проект, пока не закончится энтузиазм или деньги на подписки :).

Вывод

Вайб-кодинг - очень увлекательная штука. Но большой проект в таком режиме держать в голове тяжело. Сначала всё весело: новые фичи появляются почти мгновенно, ИИ помогает разбираться в незнакомых библиотеках, архитектуре и API. Но чем больше становится проект, тем меньше остаётся ощущения «магии» и тем больше времени уходит на: тестирование, рефакторинг, ревью, фиксы, перепроверку ответов ИИ. И в какой-то момент начинаешь уставать даже не от программирования, а от постоянного менеджмента моделей: «Проверь это», «Перепиши так», «Сделай ревью», «Сравни подходы». Наверное, поэтому приложение с таблицей умножения делать было веселее, чем сам ZConnect. Но всё равно ощущения очень необычные. Ещё пару лет назад я бы не поверил, что смогу почти в одиночку собирать такие проекты.

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

Подписывайтесь, ставьте лайки и звёздочки на GitHub :)

Ссылки на GitHub и сайт проекта