ESPN DeportesValkyries vs. Dream: ¿Qué decidirá el primer Juego 7 de las Finales de la WNBA?ESPNTransfer rumors, news: Man United look to Fulham's Bassey to bolster defenseThe Jerusalem PostEisenkot lays out four coalition principles, says 'any MK' who accepts them can join government한겨레루비오 “북-미 정상회담 일정 없어…한국 의원 비자 문제는 양자 해결”ZDF heuteEntdecken Sie das ZDF-NachrichtenstudioBusiness AMElon Musk breekt alle records met politieke donaties van meer dan 445 miljoen dollarVanguardGov. Lawal presents staff of office, vehicles to 19 Zamfara emirsANSAManovra, scontro sulla scuola. Banche ancora sotto tiroFootball ItaliaCardinale: ‘Bring Milan back to the top, I’m sticking with Amorim’ESPN CricinfoKing 81*, Chase five-for guide West Indies to victory on tricky pitchPremium TimesMakinde, running mate to unveil Reset Nigeria Agenda manifesto on 4 Novemberسكاي نيوز عربيةفيديو.. استهداف قوات الأمن بعبوات حارقة في باريس
The Daily Newsstand · Free, Always
Saturday, October 31, 2026

Программируем без IDE или применение qwen и qwen coder для написания софта

Translate

Сейчас мы попробуем быстро написать сканер ntfs alternate data streams потоков, на не совсем тривиальном стеке и архитектуре. Сделал я это в первую очередь для тестирования возможностей моделей семейства qwen.

Краткое пояснение для тех, кто не работал в это сфере. NTFS (аббревиатура от англ. new technology file system — «файловая система новой технологии») — стандартная файловая система для семейства операционных систем Windows NT. Одним из ее малоизвестных свойств является наличие альтернативных потоков данных (англ. Alternate Data Streams, ADS), который представляют собой метаданные, связанные с объектом файловой системы NTFS. Таким образом к файлу можно прикрепить еще несколько потоков данных которые будут не видны стандартными средствами ОС.

Как устроены ADS

1. Основной поток (по умолчанию): Безымянный поток: $DATA содержит привычное содержимое файла (текст, код, картинку).

2. Альтернативные (именованные) потоки: Могут содержать любые данные произвольного размера и привязываются к имени файла через двоеточие, например: file.txt:streamname:$DATA.

3. При записи данных в ADS размер основного файла в проводнике Windows не меняется, что делает скрытые потоки невидимыми для стандартных средств просмотра (Проводник не отображает их наличие).

4. При копировании файла на другой носитель с файловой системой NTFS потоки сохраняются. При переносе на FAT32, exFAT или загрузке через большинство сетевых протоколов альтернативные потоки теряются.

Для легитимного применения ADS используются в следующих случаях:

1. Хранение метаданных: Windows использует ADS для меток безопасности (например, знаменитый флаг Mark of the Web в потоке Zone.Identifier, который предупреждает при запуске скачанных из интернета файлов).

2. Для совместимости: изначально функция внедрялась для поддержки файловых систем Macintosh (HFS), где файл мог отдельно хранить иконку, ресурсную часть и текст.

3. Для классификация данных: Средства классификации (например, Microsoft FCI) могут сохранять метки документов внутри потоков.

Постановка задачи Qwen

В качестве программного стека для реализации мною было решено использовать Rust для ядра приложения и Avalonia для Gui, т.к. есть необходимость обеспечить работу как под Windows, так и под Linux. При этом Linux версия должна уметь работать как через ntfs3, так и через ntfs-3g. Все что в итоге получилось доступно на github: https://github.com/BlackEric001/NtfsStreamsViewer.

Для начала работы я отправил в https://chat.qwen.ai/ следующий промпт: «Нужно написать приложение с GUI для сканирования NTFS дисков на наличие в файлах alternate data streams. Необходимо обеспечить возможность просмотра данных в потоке, их выгрузку.

Программа обязательно должна иметь возможность работы как под Windows, так и под Linux.

Я вижу реализацию как модуль работы с диском который будет выполнять сканирование дисков, папок, файлов, загружать и выгружать данные в потоки, их создавать и удалять. И предоставлять API для GUI.

Гуи же будет использовать модуль работы с диском.

Модуль работы с данными хотелось бы видеть реализованным на Rust.

На чем лучше сделать GUI?

Оцени вообще предложенную архтитектуру...»

По умолчанию предлагается Qwen3.7-Plus.

В общем он написал, что предложенная архитектура идеальна, без детальной проработки. Не хорошо… Пробуем Qwen3.8-Max, отправляя тот же самый промпт. Здесь уже ответ значительно более подробный, с весьма дельными предложениями. Длинный и подробный ответ Qwen3.8-Max можно прочитать по ссылке: https://chat.qwen.ai/s/t_9566645d-b473-48b9-ac18-a00b79ee105c. Я не привожу его здесь, т.к. там очень много, но если вкратце, то 3.8. тоже согласился с предложенной мной архитектурой, но предложил ее дополнить еще одним приложением командной строки, что в итоге и было реализовано.

В итоге я попросил его написать ТЗ, описывающее реализацию ядра на Rust для qwen coder. ТЗ сохраняем в файл ..\SPEC.md и вместе с начальной структурой каталогов пушим в репу.

Работа с qwen coder

Для начала работы с qwen coder (https://coder.qwen.ai/) даем ему доступ к репозиторию на гитхабе:

Рис 2. Выдача доступа qwen coder к репозиторию на гитхабе.

Рис 2. Выдача доступа qwen coder к репозиторию на гитхабе.

Пишем короткий промпт: «Напиши приложение по заданию в файле https://github.com/BlackEric001/NtfsStreamsViewer/blob/master/SPEC.md» и агент начинает работу.

Рис. 3. Не собирающийся код по итогу работы

Рис. 3. Не собирающийся код по итогу работы

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

Следующим этапом я попросил Qwen3.8-Max написать ТЗ для GUI части. То что у нас получилось после небольшого обсуждения я опять таки запушил в репу: https://github.com/BlackEric001/NtfsStreamsViewer/blob/master/docs/GUI.md, после чего попросил qwen coder реализовать интерфейс на Avalonia. С первой попытки он опять выдал не собирающийся код. Но здесь нужно заметить, что у агента нет доступа к Windows, он все проверял на доступном ему Linux. Я же все проверял под Win 10. После того как я сказал, что код не собирается он его поправил и получился не плохой, но очень простой интерфейс. После небольшого тестирования с моей стороны я попросил его добавить логи и их вывод в отдельном окне, что и было быстро проделано. Все pull requests от qwen coder я мержил без правок. После каждого этапа я просил Qwen3.8-Max проверить что получилось. В данной реализации он проблем не находил и предлагал переходить к следующему этапу.

Рис.4. Получившееся приложение

Рис.4. Получившееся приложение

Вывод

Все стало очень просто и быстро и сводится к постановке задачи агенту и проверке результата. IDE тоже не нужна. Фактически разработка начинает выглядеть как аналитика > постановка задачи агенту > проверка результата работы агента нейросетью для поиска ошибок, уязвимостей и т.д > тестирование получившегося приложения. Код теперь генерится с такой скоростью, что для ревью тоже нужен агент. Люди не успеют всё это отсмотреть вручную как раньше.

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

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.