Чуть больше года назад, я написал свою первую программу в жизни. 

Это был достаточно необычный опыт для меня «не программиста» — и на радостях я рассказал жене, коту, маме и даже маминому племяннику, но… оценить всю эпичность сего достижения они не смогли, и «мне пришлось» спеть

В общем, чтобы люди узнали о хорошей программе, а я набрал очков для своего чсв — написал об этом лонгрид на VC Как я сделал программу за 5 недель без опыта программирования если вдруг не читали — ничего страшного, почитайте. А сегодня — сиквел вторая часть.

В предыдущих сериях…

Между лонгридами аккурат умещается год. Когда я начинал осенью ‘24-ого и заканчивал в январе ‘25-ого — представьте себе, слова вайбкодинг ещё не было. Вот где реально Ого!

Примерно так я рассказывал про свою первую программу… в первом лонгриде.
Примерно так я рассказывал про свою первую программу… в первом лонгриде.

И действительно, год назад я по сути прожил и написал каждую строчку кода руками, придумывал архитектуру и взаимодействие, считал на бумажке DPI будущих кнопок через пропорцию и „Х“, что-то гуглил, находил и читал документацию, решал железные проблемы.

Сегодня же мой рассказ уместился бы в одно предложение, ну, или в два.

Я закинул в Claude Code свой Github и попросил сделать такое, но с перламутровыми пуговицами, такое же но для macOS. Собственно и весь рассказ.
Я закинул в Claude Code свой Github и попросил сделать такое, но с перламутровыми пуговицами, такое же но для macOS. Собственно и весь рассказ.

Вероятнее всего из-за этого я весь февраль сопротивлялся прокрастинировал и не хотел писать об этом вообще. Из серии — а о чём тут писать то? Ну, написал и написал для macOS, чё бухтеть то?

Однако, мне всё ещё хотелось чтобы люди узнали о hypetype для macOS, а я набрал ещё немного очков для своего чсв — я придумал, что для интересующимся вайбкодингом будет полезно узнать как было тогда и сейчас. Ну, а ещё, у меня было около 40 человек в личке Telegram, которые в течение года спрашивали что-то вроде:

Мне пришлось завести отдельную папку в Telegram чтобы не потерять всех людей, написавших мне с просьбой о приложении для macOS
Мне пришлось завести отдельную папку в Telegram чтобы не потерять всех людей, написавших мне с просьбой о приложении для macOS

Забавный факт. Год назад  — смеха ради, я обмолвился Серёге: что буду писать версию под macOS, когда нейронки подтянутся, чтобы можно было написать на чистом Swift за один промт.

А 24 декабря 2025 на очередном демо Планетария я посмотрел чё творят ребята с помощью Claude Code — был приятно удивлён и тоже решил попробовать. На следующий день я решил попробовать сделать hypetype на macOS.

****

Первый блин не комом или Рождественское чудо

25 декабря 2025

Тогда. Писал код в обычном блокноте, ну в смысле Notepad.exe, и запускал файлик через AHK. Если у меня что-то не получалось, я переписывал код ошибки вручную и отправлял в Telegram в бесплатного бота с ChatGPT и ждал чуда, что ответ, который я скопирую, будет работать.

Сейчас. Cкачал XCode, оплатил Claude Code и подключил его через веб-авторизацию в Chrome за пару кликов и начал просто тупо писать в чат что я хочу, ожидая рабочий код. XCode и Swift до этого я никогда не видел.

Сравнивать практически невозможно. Это как сравнивать Lamborghini и ручную мясорубку.
Сравнивать практически невозможно. Это как сравнивать Lamborghini и ручную мясорубку.

В первый день разработки —  я объяснил Claude Code на пальцах» что хочу делать. Дал ему ссылку на репозиторий Github и попытался задать ему несколько наводящих вопросов об отличиях архитектуры систем Windows и macOS. 

Clode Code меня выслушал  предложил поэтапную разработку, объяснил мне нюансы и варианты по архитектуре и составил план на согласование. План выглядел очень логичным, я бы даже сказал, слишком логичным  — я тупо окнул и начал ждать.

Я далеко ещё не 300к/нансосек программист, но уже немного представлял про перехват клавиш, ремапинг, драйвер клавиатуры, потоки, память, раскладки, языки — мог более мене осмысленно поставить задачу
Я далеко ещё не 300к/нансосек программист, но уже немного представлял про перехват клавиш, ремапинг, драйвер клавиатуры, потоки, память, раскладки, языки — мог более мене осмысленно поставить задачу

Через минут десять после моего подтверждения Claude Code отчитался, что закончил первый этап и попросил запустить тестовую сборку. Я уточнил как это делается, напомню XCode я видел первый раз в жизни, он подсказал сочетание клавиш для запуска…

И вы бы видели моё лицо. Оно, с¥%к@, работало!

На самом деле, там была парочка мелких багов, которые легко фиксились, но концептуально — работало
На самом деле, там была парочка мелких багов, которые легко фиксились, но концептуально — работало

Я сидел с @х¥eVшими глазами и не понимал — как 6/\@ть так-то? Почему я столько откладывал разработку программы, если это делалось буквально одним сообщением в чате…

Итоги. За три часа первого подхода, из которых два часа я качал XCode, а потом обновление для него и оплачивал Claude Code  —  у меня был полностью рабочий прототип, который умел перехватывать клавишу правый Option R⌥ и вставлять символы в сочетании с 5-ю тестовыми клавишами без конфликтов в нужных программах. Пошёл радоваться тестировать…

Выводы. За год поменялось всё. Работать в IDE в миллиард раз приятнее и проще чем в блокноте.  Ваш кэп.

Второй подход — апперитивно-разогревочный

26 — 31 декабря 2025

Предновогодняя суета не давала возможности нормально погрузиться в разработку, но я потихоньку тестировал и поэтому по вечерам чаще залипал в MacBook чтобы побольше попользоваться своей новой „программой“ — готовя «Свою игру» для своих корешей на новогодний вечер.  

Тогда. На иконку приложения я потратил два вечера. А на функцию Виртуализации я убил неделю + трижды уронил Windows — один раз на рабочей винде и дважды на виртуалке, пока не прочитал документацию. Нейронка вообще не то делала, но я этого не понимал.

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

Это была самая лёгкая часть разработки. А игра ребятам понравилась, если что.
Это была самая лёгкая часть разработки. А игра ребятам понравилась, если что.

Итоги. На всё про всё ушло 3-4 часа. И даже в таком режиме получилось реализовать
— полноценное меню
— иконку в MenuBar
— иконку самого приложения
— функцию Автозапуска
— функцию Виртуализации

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

Новогодний рывок · Часть II

1 — 10 января 2026

Понимаете, каждый год 31 декабря мы с друзьями ходим в баню снимаем загородный дом на несколько дней и там ходим в баню. Это у нас такая традиция. И так получилось, что в тот год я делал hypetype для Windows лёжа на диване в гостиной, а на этот новый год было почти тоже самое. 

Уже первого числа утром, пока все спали — я лёжа в кровати „писал“ код…Ну как писал — поглядывал за окошком чата, и если там было спокойно — проверял.

На самом деле, я даже какие-то паддинги настроил вручную — но по факту просто заменил парочку значений в коде «на глазок» на свой вкус
На самом деле, я даже какие-то паддинги настроил вручную — но по факту просто заменил парочку значений в коде «на глазок» на свой вкус

Тогда. Я работал в течение недели почти по десять часов каждый день — пытаясь понять как, что, куда и как. Переделывал интерфейс раз двадцать, не меньше. Меня штормило от простой картинки до ini-файла, то потом снова к реальному интерфейсу. Потому что у меня — то не получалось, то получалось, то опять не получилось. Помню, как в ту неделю я очень устал.

Сейчас. Код писался так быстро, что фичи прирастали быстрее чем я успевал их тестить. Важно понимать — я не говорю, что ошибок и багов не было, они были. Писать хардверный код, на самом деле, дело неблагодарное. В отличии от веба, но об этом как-нибудь потом.

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

В 95% случаев Claude Code писал что-то вроде «Да, всё понятно — я забыл то-то и то-то, ща поправим  там-то и там-то и всё будет чикаго». В 5% остальных случаев — надо было просто попросить ещё раз.
В 95% случаев Claude Code писал что-то вроде «Да, всё понятно — я забыл то-то и то-то, ща поправим  там-то и там-то и всё будет чикаго». В 5% остальных случаев — надо было просто попросить ещё раз.

Итог. За новогодние каникулы у меня удалось собрать интерфейс и в принципе, это была уже рабочая программа на чистом Swift. С интерфейсом, редактором, картой символов, автозапуском, виртуализацией, короче — полный фарш.

Вывод. Мир уже поделился «до» и «после», как когда-то его поделили огонь, математика, порох, паровоз, бензин, горячий душ и интернет. Ваш кэп №2. А шо будет ещё через год?

Первые тестирования — яблоки тоже хотят кушать

12 — 13 января

У меня, вроде как, всё работало и я начал потихоньку закидывать удочки, чтобы найти кого-то ещё с macOS и прямыми руками в попытках установить свою программу кому-то кроме себя. Как обычно в таких ситуациях выручает Юра. Если будем живы — следующий лонгрид сделаем про совместный с ним проект.

Оказалось, чёрт побери, что всё не так-то просто. У меня всё работало сразу без танцев с бубном, а на другие машины нужно было ещё знать как установить.  

Политика Apple проста — плоти деняк за сертификат разработчика, чтобы другие могли пользоваться твоими программами без костылей.
Политика Apple проста — плоти деняк за сертификат разработчика, чтобы другие могли пользоваться твоими программами без костылей.

Тогда. Разработка на Windows была предсказуема в том плане, что я был уверен — скину приложение другу/брату/свату, он нажмёт «Всё равно установить» и будет работать. И уж тем более, никто не просил меня купить сертификат разработчика на один год с посылом о безопасности.

Сейчас. Я потратил несколько часов на общение с нейронкой и тесты. Научился делать свой сертификат, как им подписывать и правильно работать с компилятором и дистрибуцией. Но смысла этого не имело.

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

Вывод. Бюрократия есть везде. Все хотят денег. Если ты не планируешь зарабатывать на приложении, то ты не особо интересен для Apple как разработчик, а значит нет и особого смысла возиться с тобой.

За невежество придётся платить. Дорого. Очень дорого.

14 — 16 января

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

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

Clode Code меня убеждал, что мы используем методики по последнему писку моды, но всё равно работало кривовато. Я уже в какой-то момент начал сомневаться в лёгкости этого мероприятия.
Clode Code меня убеждал, что мы используем методики по последнему писку моды, но всё равно работало кривовато. Я уже в какой-то момент начал сомневаться в лёгкости этого мероприятия.

В какой-то из таких подходов я/мы придумали какую-то там „задержку“ и „флаг“ — не спрашивайте даже. В общем, я/мы внедрили эту функцию и… всё сломалось. Вообще всё. Просто ничего не работало. Кнопки не перехватывались, символы не вставлялись.

Я, недолго думая, на спокойном пишу — «Нихера не работает, вертай всё взад». Clode Code, абсолютно на спокойном, пишет — «Не очкуй, я так сто раз делал щас всё откатим», начинает переписывать файлы… и в этот момент у меня вылетает XCode.

Работаю без бекапов и контроля версий…не предполагаю, что будет через минуту…
Работаю без бекапов и контроля версий…не предполагаю, что будет через минуту…

Я, на ультра-мега спокойствии, в полной уверенности сохранности сессии запускаю XCode… и оказывается — мой проект не сохранился. Сам файл проекта существует в папке на диске, но заботливое окошко уведомляет меня о том, что файл битый ?

Тогда. Я работал в блокноте. Если у меня случался успешный запуск я сохранялся. А если нужно было сделать новую функцию — я нажимал на «Сохранить как…» и добавлял новую цифру в имени файла и писал дальше. К этому механизму я пришёл тоже имперически, после какого-то неудачного внедрения функции.

Сейчас. Я бы опьянён всемогуществом нейронки, подключённой напрямую к IDE. Я был в полной уверенности, что у меня/нас всё схвачено. Всё осложнилось ещё тем, что почти три недели я работал локально — без версионности, без коммитов, без бекапов… короче, полный беспросветный лютый п|/|3@€ц!

Так сильно я не расстраивался с момента как три раза подряд уронил Windows редактированием реестра.
Так сильно я не расстраивался с момента как три раза подряд уронил Windows редактированием реестра.

Итоги. Сами Swift-файлы сохранились на диске, их можно было открыть, но они были наполовину сломаны предыдущей перегенерацией. Собрал обрывки файлов в в кучку и пошёл на поклон к шефу к Clode Code просить собрать из этого, что-то более менее рабочее.

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

Сайдхасл — поддержка и опора

17 — 19 января

Решил немного поизучать вопрос и пообщаться с программистами на программистские темы. И Рома и Серёга подсказали про агентный подход. И это очень круто сработало — за вечер настроил и смог восстановить всё до рабочего состояния и принёс ребятам в Сайдахасл.

Каждое воскресенье мы собираемся рассказываем, что успели сделать по проектам за неделю, делимся удачами, факапами, инсайтами и наблюдениями, задаём вопросы, просим совет или мнение со стороны. Я вот просил установить кейлогер достаточно сырое приложение для вставки символов и потестировать.

Тогда. При разработке на Windows я все тестил дома — два ноута и комп. Плюс я писал на готовом скриптовом языке AutoHotKey, в ядре которого уже заложены все обработчики и нужно написать только формальную логику на стороне пользователя. Это в разы легче.

Сейчас. У всех ребят в Сайдхасле макбуки. Мне было интересно как будет работать моя кривенькая самописанная программка у других. Плюс ко всему, почти все из них попадают в целевую аудиторию моей программы — дизайнеры, программисты, редакторы.

Запомнил фразу Тани: «Слышу усталость в голосе, это нормально — может сделать передышку?» Меня это тогда как-то заставило задуматься и расслабиться.
Запомнил фразу Тани: «Слышу усталость в голосе, это нормально — может сделать передышку?» Меня это тогда как-то заставило задуматься и расслабиться.

Итоги. В этот же день Таня нашла багу с Todoist, которая ломала мне всю концепцию программы. Я немного расстроился и пошёл ломать переделывать архитектуру. Полностью.

Выводы. В очередной раз понял, что африканская пословица «Если хочешь идти быстро, иди один; если хочешь идти далеко, идите вместе» работает. Бросаться с головой в новый инструмент не стоит — лучше воспользоваться «мануалами для чайников».

Переделка архитектуры — гениальная придумка · Часть II

22 — 23 января

Чтобы побороть любые конфликты при вводе символов на Windows я придумал сп%Σдил на старом форуме идею виртуализации кнопок через драйвер клавиатуры напрямую в реестре. 

Для macOS оказалось, тоже можно эмулировать клавишу через ремапинг клавиши на уровне драйвера клавиатуры как в Windows, правда, с принудительным заводом скрипта после каждой перезагрузки.

Мне это казалось каким-то костылём, но кто я такой… ведь сам шеф Claude Code пришёл в восторг от этой идеи и сказал, что я гений. Также он «ставил правую кнопку option руку на отсечение», что это решит все мои/наши проблемы с кнопками, и вообще — он якобы даже немного расстроился, что сам не догадался о таком решении. 

Claude Code «мамой клянётся», что идея с ремапингом клавиш гениальная…и сработает.
Claude Code «мамой клянётся», что идея с ремапингом клавиш гениальная…и сработает.

Спустя пять часов. Нет, не так… Спустя ПЯ-Я-Я-ТЬ МУЧИ-И-И-И-ТЕЛЬНЫХ ЧАСО-О-О-В, из-за появившейся перезагрузки, постоянного переписывания кода и последующих тестов оказалось, что это тупо лишний геморой, который вообще нам н@%¥й не нужóн, потому что — ОКАЗАЛОСЬ — мы по сути уже работаем с драйвером «почти» напрямую… с некоторыми ограничениями, но не суть. Пять Σб@ны% часов, Карл Сеня! На разработку фичи, которая по сути была не нужна. Да, я в курсе, что «суть» три раза подряд, и чё вы мне сделаете, Тамара Петровна?

У меня был один единственный экзистенциальный вопрос — Claude Code, за что?

«В мире не хватит ромашкового чая, чтобы успокоить ярость в моей груди» — ведь я потратил весь вечер пятницы на вещь, которую просто выбросил…
«В мире не хватит ромашкового чая, чтобы успокоить ярость в моей груди» — ведь я потратил весь вечер пятницы на вещь, которую просто выбросил…

Тогда. Я тратил много времени на решение проблем, которые надумывала нейронка. Находил более понятные и универсальные ходы, а нейронка называла меня гением — приятно, но не более.

Сейчас. Если идея хотя бы на миллиметр логичная, нейронка с удовольствием согласится с тобой, ведь она «хочет соглашаться» с тобой. Теперь свои идеи я прошу не реализовывать, а критиковать — результат получается релевантнее.

Итоги. Я откатился на предыдущую версию и начал тестировать. ОКАЗАЛОСЬ, что баг не у меня в программе, а у Todoist'a — он не поддерживает неразрывный пробел в заголовках ?

Этот мем я сделал для себя, чтобы не забыть своё любимое правило. Если тебе что-то говорят, это не значит что ты должен бросать всё и что-то делать… Сначала надо подумать как решить проблему ничего не делая.
Этот мем я сделал для себя, чтобы не забыть своё любимое правило. Если тебе что-то говорят, это не значит что ты должен бросать всё и что-то делать… Сначала надо подумать как решить проблему ничего не делая.
Никому не верь · часть II

Я примерно месяц таскал две функции вставки символов. Одну директивную, вторую — через буфер обмена. Со слов CC — директивная подходила для всех символов, кроме эмодзи. Якобы macOS, в отличие от Windows, как-то по-другому обрабатывает именно эмодзи и они не могут вставлены напрямую.

Вы бы знали сколько раз я пытался пофиксить этот баг… но без результатно — эмодзи лагали, и я даже думал отрубить их из фунционала т.к. мне не хотелось даже в краевом случае знать, что там потенциально может быть баг.

Однако, после ситуации с ремапингом, я ещё раз вернулся к этому вопросу и спросил CC — а можно ли сделать директивный метод для эмодзи… Он ответил, что нет.

Я попросил «просто написать функцию и типа сам протестирую как это несработает». И знаете что? ЭТО $%К@ РА-БО-ТА-ЛО! Без лагов, без задержки, без пропуска символов, так же предсказуемо как и все остальные символы. Слов больше не было.

А, эмодзи — есть ?

Выводы. Чем круче технология, тем ты тупее. Ведь, никто не просил меня писать код и решать проблему, правильнее проще было просто потестировать и понять логику проблемы. Но возможность закинуть в чат проблемку и получить решение за несколько секунд работает как наркотик превращается в зависимость. Главный вывод. Утром деньги Сначала — тесты, вечером стулья потом — переделка архитектуры. Главный вывод №2 — скепсис наше всё.

Переделка архитектуры №2 — поцелуй сухой заливки

25 — 26 января

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

Благодаря Коле и Кристине удалось отловить баг с залипанием R⌥ на который, я в спокойном режиме и «без надрыва», «в_лёгкости» и «в_ресурсе», потратил ещё один вечер. Claude Code написал всё достаточно быстро, но вот тестирование было полностью на мне — я старательно пытался словить баг, но слава Афине, всё работало.

Но беда пришла откуда не ждали…

В процессе я узнал, что существуют некие фреймворки. Некие —  KISS, DRY, SOLID и т.д. и началось… Во мне заиграл программист 300к/наносек — всё должно быть по  науке, по модному и надо по-любому делать именно так. Побежал сразу к Claude Code с просьбой провести аудит моей программы согласно этим фреймворкам.

Я бегу внедрять в проект вещи, смысл которых ещё не особо понимаю… но на бумаге звучит как таблетка от всех болезней — мне срочно надо!
Я бегу внедрять в проект вещи, смысл которых ещё не особо понимаю… но на бумаге звучит как таблетка от всех болезней — мне срочно надо!

Вольный сокращённый пересказ моего диалога c Claude Code.

Я: — Привет! Мне нужно провести аудит кода программы, нужно опираться на классические фреймворки KISS, DRY, SOLID, YAGNI. Вот мой код. Скинул все файлы программы.

CC: — Слушай, уволь того кто тебе разрабатывал этот код. Это какой-то нубяра, который вообще не шарит за архитектуру и подход — щас сделаем красиво, возможно даже проще с нуля…?

Я: Полный радости и воодушевления. — Давай делать! С нуля! Обожаю делать с нуля!

СС: Очень долго генерит и тратит впервые за месяц все доступные токены дневного лимита. Занавес.

Важно понимать. Я уже смешарик знал про агентов, планирование и этапность работы. Поэтому в режиме планирования мы с Claude Code заранее отразили: подходы, архитектуру, детальную карту проекта, все функции и их логику в проекте.

Всё это было заботливо записано в файлик claude.md — как писать код, какие фреймворки для чего использовать и что делать, если что-то не работает, как обращаться со старым кодом, как комментировать функции и логику работы кнопок, короче всё было по науке — стильно, модно, молодёжно, как я и мечтал ещё буквально неделю назад.

Я был полностью уверен, что это сработает… потому что в сравнении с началом проекта уровень предсказуемости просто зашкаливал. Было описано 90% всего функционала.
Я был полностью уверен, что это сработает… потому что в сравнении с началом проекта уровень предсказуемости просто зашкаливал. Было описано 90% всего функционала.

За два таких подхода, когда заканчивались токены, мне/нам удалось сделать полностью новое приложение как в лучших домах Лондóна, по всем канонам и фреймворкам.

Визуально мне очень нравилось как всё это выглядит — всё по папочкам, всё отдельными файлами и функциями. Глазам было намного легче и проще ориентироваться в проекте. Я даже было хотел начать изучать код.

Но было одно небольшое но… или большое… это н¥%уя не работало ?

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

Я скидывал ему свои старые файлы, говорил какие строчки и в каких диапазонах посмотреть, где взять логику и куда поставить, описывал как всё должно работать в реальном использовании — ничего не помогало. Из-за новой архитектуры он постоянно терял файлы, путал папки, переписывал не тот код и не туда, сохранял баги, думая что уже исправил, а после говорил: «Ой, извините… я всё сломал, щас переделаю»

Когда Claude Code в десятый раз говорит мне, что он сейчас всё исправит и ничего не меняется.
Когда Claude Code в десятый раз говорит мне, что он сейчас всё исправит и ничего не меняется.

Но самое смешное не это. Я психанул и скормил на сайте в Opus 4.5 два репозитория «Самописный» и «Отрефакторенный по фреймворкам» и получил такое заключение.

Claude Code
Да, второй проект выглядит визуально более читаемым и архитектурно соблюдает принципы заложенные в claude.md, но сами подходы перехвата клавиш и обработка потоков реализованы менее надёжно…

В общем. За всей этой визуальной современностью, стильностью, модностью и молодёжностью я потерял стабильность и предсказуемость работы. А по факту даже просто работы не было.
В общем. За всей этой визуальной современностью, стильностью, модностью и молодёжностью я потерял стабильность и предсказуемость работы. А по факту даже просто работы не было.

Тогда. Я не задумывался ни о чём кроме одного — лишь бы работало. AutoHotKey прощала мне мою глупость и следила за адекватностью происходящего. По сути это была похоже на игру в песочнице.

Сейчас. Я пытался прыгнуть выше головы, хотя навыков для прыжков было примерно как слона. И по большому счёту я просто жёг токены бил посуду в посудной лавке.

Итоги. Психанул, пошёл спать.

Выводы. Мне нужно это просто пережить.

GIthub, надеюсь, ты скучал

27 января

На следующий день, я ещё разок попробовал вернуться к „модному“ варианту — пациент был безнадежен, все мои просьбы и мольбы к Claude Code не возымели никакого действия. Мы просто ходили по кругу. Я был в тупике.

Я нарочно оставил висячий союз «и» чтобы передать мои ощущения… Вот настолько всё было плохо.
Я нарочно оставил висячий союз «и» чтобы передать мои ощущения… Вот настолько всё было плохо.

Я порасспрашивал Claude Code ещё о текущей реализации. Задавал очень много вопросов о том какие будут последствия если я не переведу софт на модные фреймворки.

Claude Code убедил меня заверил, что сам код полностью рабочий и правильный, местами даже элегантный, а основная проблема работы не по фреймворкам — в последующей поддержке и развитии приложения. Что, мол, если я захочу какую-то функцию добавить или доработать мне нужно будет тягать огромные файлы вместо маленьких, и что глазами легче работать со структурой файлов и папок нежели с одной корневой папкой и пятью мастер-файлами.

Я успокоился и решил, что пора — заливаю рабочую версию на Github, иначе это никогда не закончится…
Я успокоился и решил, что пора — заливаю рабочую версию на Github, иначе это никогда не закончится…

После публикации файлов, нужно было сделать readme файл.

Тогда. Потратил часов десять или даже пятнадцать на написание всех заголовков, описаний, инструкций, картинок, анимаций и прочего по мелочи. И это, скорее всего, оптимистичная оценка, потому что оформительская работа мне даётся достаточно легко и я склонен занижать часы по ней.

Сейчас. Просто кинул в Claude Code ссылку с Github и попросил сделать всё тоже самое, только с учётом, что это инструкция под мою новую программу на macOS. Через 5 минут всё было готово. Буквально 5 минут. Полностью готово. Сразу в разметке Markdown. Ещё и дал парочку годных рекомендаций. Тупо CMD+C → CMD+V. Я заменил только скриншот с интерфейсом программы из macOS. Это было волшебно!

Моё настроение, когда Claude Code сделал описание для Github и сделал парочку прикольных доработок.
Моё настроение, когда Claude Code сделал описание для Github и сделал парочку прикольных доработок.

Итоги. У меня появился оформленный репозиторий с новой программой на Github меньше чем за вечер. Весь февраль я кидал ссылку людям, которым это могло бы быть интересно, а кто-то и сам спрашивал… Получал обратную связь, вносил какие-то мелкие корректировки в инструкции, накручивал новый стилёк, правил лендинг, короче, наводил марафетик. И начал писать этот лонгрид.

Выводы. Повторение — мать учения. Очень хорошо понимаю, почему все хотят нанять людей с опытом. Хорошо видно, как человек с опытом делает туже работу по заполнению readme.md в сотни раз быстрее. Ваш кэп №3.

***

Что ещё произошло за год — события, новости, достижения

С прошлого лонгрида с проектом hypetype произошло достаточно много событий, зафиксируем ключевые.

Участие на productradar. Получилось прикольно — собрал достаточно много положительной обратной связи, познакомился с кучей толковых ребя и получил порядка десяти заявок на разработку hypetype для macOS. Удалось получить почётное звание Продукт недели №3

При участии на Product Radar я сделал свою первую в жизни сторис, чтобы рассказать всем про запуск…
При участии на Product Radar я сделал свою первую в жизни сторис, чтобы рассказать всем про запуск…

Собственный лендинг. На Радаре получил инсайт, что страничка на Github пугает неподготовленного зрителя, а потому за вечер я собрал промо-страничку из разряда «чтобы было». Этого было достаточно для большинства, а мне дало время подумать и подсобрать что-то более менее оформленное. Основной сайт↗

Статистика на Github. За год версию для Windows скачали 750+ раз и поставили 39☆ звёздочек. За месяц версию для macOS скачали 60+ раз и поставили 5☆. Количество упоминаний в этом лонгриде Github — 13, Claude Code — 24. Скачать с Github ↗

Каждый раз захожу на Github и не верю своим глазам, что это сделал я. Сложно объяснить…
Каждый раз захожу на Github и не верю своим глазам, что это сделал я. Сложно объяснить…

Упоминания и рекомендации. То и дело мне прилетали в личку ссылки или скриншоты, как где-то кто-то упоминает hypetype. Почти всегда это были хорошие отзывы или рекомендации, но кто-то и критиковал за то, что я распространяю вирусы или пытаюсь «что-то» продать. Программа попадала в несколько подборок полезных программ для дизайнеров и редакторов, в том числе и подборку от Журналуса и даже Алисы от Яндекса. А по инсайдерской информации парочка банков пиарят рекомендуют hypetype на своих корпоративных порталах.

Страничка на Boosty. За год задонатило 5 человек в общей сложности на 5380₽. Восемьдесят из которых это донат от жены для проверки работы платформы. Программа распространяется по модели Donationware: хочешь — поддерживаешь, не хочешь — не поддерживаешь. Поддержать↗

К слову, Boosty сначала не хотели выводить деньги, ссылаясь на то, что я не веду публичную деятельность и как бы невозможно понять, а за что вообще люди донатят. Исправляемся — пишем.
К слову, Boosty сначала не хотели выводить деньги, ссылаясь на то, что я не веду публичную деятельность и как бы невозможно понять, а за что вообще люди донатят. Исправляемся — пишем.

Финал — итоги, выводы, планы на будущее

Тогда. Чтобы создать Windows версию и рассказать об этом общественности — на всё про всё-всё-всё я потратил ≈ 5 месяцев,  ≈ 250 часов работы, 40 часов на материал и что-то около 30 000 ₽ людям за помощь и консультации. 

Сейчас. Чтобы написать под macOS — 4 недели, ≈ 50 часов работы + 40 часов на материал и ровно 1 540 ₽ на оплату месяца подписки Claude Code Pro.

По времени вышло в 5 раз быстрее. А вот материал я пишу с той же скоростью. Бутылочное горлышко — моя писанина, спасибо за поддержку.
По времени вышло в 5 раз быстрее. А вот материал я пишу с той же скоростью. Бутылочное горлышко — моя писанина, спасибо за поддержку.


Итоги. У меня есть две программы, которыми я пользуюсь каждый день. И если на Windows я отношусь к этому уже как должному, то когда на macOS я в одно движение ставлю <3 или ↗ или T_T или ? и т.д. я испытываю прямой выброс эндорфинов у себя в голове — кайфую короче.

Для меня это был интересный опыт со всех сторон. И с точки зрения решения своей задачи, и разработки, и выхода в публичное пространство, и ведения своего pet-проекта. Со всей ответственностью могу рекомендовать.

Теперь кайфую всегда, вне зависимости — дома я работаю на ПК или поездках на MacBook
Теперь кайфую всегда, вне зависимости — дома я работаю на ПК или поездках на MacBook

Выводы

Планирование. Во время написания этого материала и перечитывания прошлого я наступил на все грабли, на которые можно было наступить, и даже на которые было нельзя, зачастую во второй раз. Я мог сэкономить много времени и сил если бы не бросался «сразу делать», а включал режим «подумать» и «поисследовать», благо бесплатного материала очень много из каждого утюга. Но возможно, виноват азарт.

Азарт. В какой-то момент я поймал себя на мысли, что для меня вайбкодинг очень похож на лутбоксы. Механика и правда очень похожа. Ты подкидываешь монетку — «ставишь задачу», и ждёшь что выпадет — «решится задачка или нет». И остановиться практически невозможно, можно бесконечно плодить фичи, ведь ограничения только у тебя в голове.

Каждый раз запуская сборку в XCode после генерации у меня замирало дыхание в ожидании «сработает» или «не сработает»
Каждый раз запуская сборку в XCode после генерации у меня замирало дыхание в ожидании «сработает» или «не сработает»

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

Неизбежность. Не смотря на все перипетии и тернистость пути вайбкодера — ощущение, что за этим будущее. Я себе это объясняю так — мы не заставляем инженеров выводить каждый раз формулу Пифагора A²+B² = C² — они просто пользуются ей. Капитаны кораблей навряд ли сейчас могут определить широту и долготу по сектанту и Поясу Ориона, а скорость ветра облизанным пальцем, — они просто смотрят координаты по GPS и показания анемометра. Но пункт про базу, кажется, будет ещё более чувствительным.

***

Планы на будущее

Не знаю как сложится судьба hypetype. Никто не знает. Я делал этот проект в первую очередь для себя и доволен тем, как он решает мои задачи. Если пригодится кому-то ещё — буду рад. У меня есть одна или две микро-фичи (типограф и поиск) которые я, возможно, реализую в будущем, пока пользуюсь другими решениями. Может быть попробую вновь через год, когда точно всё получится сделать одним промтом!?

Понял, что я закончил свой первый пет-проект…
Понял, что я закончил свой первый пет-проект…

Точно знаю, что буду продолжать использовать нейронки, чтобы делать что-то своё. Последнее время много экспериментирую на веб-технологиях, и со всей ответственностью заявляю — это чистый восторг. Насколько там понятнее и предсказуемее получается результат при прочих равных.

Если вдруг вы дочитали до этого места — спасибо¹, как и всем, чьи имена я упоминал в этом тексте. Это моя попытка поблагодарить вас за помощь. Если вас зовут Эльчин — простите, и надеюсь, вам понравилось.

По любым вопросам в Telegram @simbarus

Мнения, мысли, соображения, поддержку или критику присылайте в комментарии. Да пребудет с вами хорошая типографика. Всем hypetype!

¹большое

Комментарии (30)


  1. mmarashan
    14.03.2026 06:27

    Лучшая подача материала, которую я видел на Хабре. Такая последовательность мемов на основе только одного кинопроизведения это топ! Было интересно читать, хотя для меня, как разработчика, было мало что нового :)


    1. IraVishnia
      14.03.2026 06:27

      Полностью согласна. Чтиво затягивает максимально, картинки заставляют смеяться в голос. Нужно больше логридных лонгридов)


  1. 23d
    14.03.2026 06:27

    Круто!


  1. shpil202
    14.03.2026 06:27

    Очень интересно и понятно )) даже человеку который далек от такого контента )


  1. Kot_na_klaviature
    14.03.2026 06:27

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


    1. akod67
      14.03.2026 06:27

      А она нужна, эта архитектура? Если целую апку с языка на язык, с платформы на платформу, с фреймворка на фреймвор "перевести" (даже не написать) за пол часа можно? Попутно добавив нужных слоёв, если вдруг это стало нужно.


      1. Kot_na_klaviature
        14.03.2026 06:27

        Мне нужна т.к. мне не наплевать на свои проекты. Я хочу видеть красивый чистый код и быстро масштабировать в тч с ЛЛМ. Мне немного некомфортно работать с нечитаемой запутанной лапшой с дырами в безопасности и производительности.. Для ллм эта лапша также будет контекстом и она в ней легко начнет путаться.

        за пол часа можно

        В сказках вайбанутых. Даже долго. В реальности недавно переносил легаси на новую архитектуру. Заняло 2 месяца с полностью готовой логикой и топовыми моделями.


        1. akod67
          14.03.2026 06:27

          Понимаю, что пишу непопулярное мнение и нахватаю, но посмотрите на это со стороны бизнеса и, скажем, лет через 5. Мнение и желание отдельных разработчиков при наличии инструментария, которому пофигу читаемость кода (хотя он и будет читаем) и прочие архитектуры (хотя и они будут) - не первичны, мягко говоря. Когда есть выбор, написать за час или за неделю, при этом результат за неделю ну ни фига лучше не будет - понятно, что выберут. Про способность людей писать безопасный код - я вас умоляю. Issue trackerы забиты багами, созданными именно людьми.

          Я сам освежал старьё недавно. Это было не просто. Но не потому, что ЛЛМ туп (я наоборот удивлялся, как он во всём этом старье умудряется ещё правильные выводы делать). Непросто это было из-за отсутствия документации. В перегнанном же проекте и документация появились, и тесты (что тоже документация для ЛЛМ). Поэтому следующая перегонка, при надобности, будет многократно проще.


          1. Kot_na_klaviature
            14.03.2026 06:27

            С каких пор бизнесу нужна ТОЛЬКО производительность? Может каким-нибудь вебстудиям, клепающим по сайту в день - вероятно. А нормальному бизнесу нужны надежность и гарантии, что обеспечивается качеством. В первой главе книги "Чистая архитектура" хорошо описано зачем качество нужно бизнесу. ЛЛМ тоже нужно качество т.к. это контекст. В статье выше написан пример, как ллм запуталась в своей лапше. У меня такое было неоднократно. Вот когда мой легаси проект был еще легаси - там был модуль комментариев. И мы вместе с опусом и гпт не могли их привести в рабочее состояние. Одно починят другое отвалится. У меня тогда времени не было и я решил доверить исправление агентам - так и не смогли завести - запутались. Только количество костылей увеличили в 2 раза. В итоге я все снес в корзину и написал с нуля. как ни странно чистый код модели понимают гораздо лучше. Ну это и очевидно если хоть немного разобраться, как работают ллм.


            1. akod67
              14.03.2026 06:27

              скажите, зачем сейчас в пайплайне реальных бизнесов есть немаленький такой отдел QA? Наверное потому, что и разработчики чуток завирают про свой качественный код, да и разработка сама по себе сложнее, чем просто написание кода. А теперь ответьте, почему в этих разговорах про LLM вдруг забывается существование этого отдела? Да ещё вооруженного средствами, на много более мощными, чем были ещё год назад.

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


              1. Kot_na_klaviature
                14.03.2026 06:27

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

                прогоняя в каждой итерации. Разберутся, проверено.

                Зачем мне эти извращения? Эти итерации в попытках разобраться в костылях. Мне такое не нужно. Вот у меня был геморойный легаси проект, я его переписал и сейчас с полуслова развивается без извращений. Времени экономится уйма и удовольствие от работы.


                1. akod67
                  14.03.2026 06:27

                  Ну а если не ставить целью, что бы ИИ продумал на 100% сам, а задать ему основу из решений и попросить её "раскрутить"? Именно так будет хороший результат. К сожалению согласен, большая часть говнокодеры и часто именно от них больше всего разоблачений тупости ИИ :) Сильных ИИ делает сильнее, слабых - только усиливает их слабости. К инструменту прилагается (к сожалению - по факту не прилагается) инструкция, как его использовать, для получения результата.

                  И ещё важный момент - вы про какую модель говорите? Многие попробуют бесплатный чатик в фаст режиме и делают вселенские выводы о всей индустрии.

                  Зачем мне эти извращения? Эти итерации в попытках разобраться в костылях. Мне такое не нужно.

                  когда вас загонят в рамки дедлайнов, оцененными теми же LLM, станет нужно


                  1. Kot_na_klaviature
                    14.03.2026 06:27

                    Не нужно если у тебя нет этих костылей. Человек и Ллм хорошо ориентируются в правильном коде. Говнокодеры сейчас как раз и визжат на тему вайбкодинга, как они за пол часа переписывают проекты или пишут стартап за завтраком. Т.к. для них это лучший код в их жизни. Задать ему основу - это просто минимум с которого начнутся потом итерации исправлений. Без основы там будет перевязанная лапша. Но даже с основой очень много тупости. Я сейчас пришел к том что всю архитектуру создаю руками, а ллм юзаю как генератор по шаблонам. Модели естественно Опус, соннет, Гпт. Другие не то что пишут хуже, а просто не работают.


                    1. akod67
                      14.03.2026 06:27

                      Вы неправы об источнике визга и почему-то (хотя знаю почему), так обожествляете код. Я на своём 30ом году активной работы стал код несколько презирать. Потому, что все те гениальные архитектуры, которые я за это время написал, такими гениальными уже не выглядят. Более того, большинство проектов просто мертвы уже. Знания конкретных тех фреймворков - ничего не стоят вместе с фреймворками. Всё новое каждые 5 лет.

                      НО, вот весь этот опыт решений, граблей, решения проблем, навыки декомпозиции дремучих легаси - позволил моментально начать получать качественный аутпут в клоде. Потому что интуитивно понимаешь, как к нему подкатывать, что ожидать, а что не надо. Как вдруг стали полезными старые практики - TDD, документация, KISS, unit of work, микросервисы и прочее - всё то, с чем отлично расправляется LLM. Стал за пол дня решать задачи, которые давно были в ящике (неплохо бы сделать, но нет ни времени, ни актуальных компетенций) - то что на новых незнакомых библиотеках / языках, и всё сразу с тестами да документацией, которую никогда не любил писать - и да, я от этого если не визжу, то повизгиваю.

                      Повизгивают и крутейшие топовые разработчики в блогах. После этого разоблачения об убогости LLMок от вчерашних вкатунов - умиляют.


                      1. Kot_na_klaviature
                        14.03.2026 06:27

                        Кто говорит что ЛЛМ убогие? Полезный инструмент для своих небольших задач. Постоянно юзаю. А вот вайбкодинг, там где не то что фичами, а ПРОЕКТАМИ генерят, это да - способ для любителей, кто ничего не понимает, или кому плевать на результат или говнокодеров со стажем.


                      1. akod67
                        14.03.2026 06:27

                        Вы путаете результат с кодом.


                      1. Kot_na_klaviature
                        14.03.2026 06:27

                        Код это часть продукта, напрямую влияет на поддержку, развитие, безопасность, быстродействие, эффективность проекта и ощущение разработчика.


                      1. akod67
                        14.03.2026 06:27

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

                        Вы слишком оторванно смотрите на код. Код лишь часть процесса, он не пишется в вакууме. Код решает задачу конкретного этапа. Все эти архитектуры, расширяемости и прочее, часто карго культ, совершенно бесмысленный для MVP. Да и следующих версий, так как пользователей будет 100 и пятьсот слоев абстракций в продукте нужны только программистам, что бы важно надувать щеки =) KISS в общем


                      1. Kot_na_klaviature
                        14.03.2026 06:27

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


                      1. akod67
                        14.03.2026 06:27

                        Зависит от повара, лапша получится или лазанья


        1. ohrenet
          14.03.2026 06:27

          Я хочу видеть красивый чистый код

          Оратор выше прав. Парадигма кода уже не имеет ценности в новом мире. Это как генерируемый компилятором ассемблерный код - на первых порах тоже все справедливо плевались. А кто вот теперь сейчас без подсказки ИИ скажет что делает команда movsxd rbx, eax? В новом мире теперь гораздо важнее грамотно выстроенный пайплайн и поставленная задача. И на этом многие сыпятся. Никакая ЛЛМка не телепат, и то что вам кажется очевидным, для неё совсем не обязательно очевидное.

          с дырами в безопасности и производительности

          А вы просили эту безопасностью и производительность? Может вы на коленке MVP чисто для себя пишете где это особо и не нужно. Нейронки по всей своей природе минимизируют функцию потерь от поставленной задачи. Всё что не поставлено и мешает этой минимизации - будет выкинуто.

          По поводу тестов - у меня было такое, что модель не могла заставить фичу работать через падающий тест и тогда изменила тест, чтобы проходил. Говорит "теперь тест не падает, можете проверять".

          И в чём она не права? Вы дали задачу "чтобы тесты не падали". Тесты не падают? Может просто задачу грамотно ставить надо?

          Максимум что могут - это создать запутанную и наглухо связанную кашу из классов.

          Это для людей. А для неё - чистейший и оптимальнейший код. Просто не надо в этот код смотреть. Код теперь не для людей.

          И даже это не проблема, рефакторят они отлично. Если так же отлично ставить задачу.


          1. Kot_na_klaviature
            14.03.2026 06:27

            Поэтому в статье выше чел не смог завести проект после ллм рефакторинга.

            А вы просили эту безопасностью и производительность?

            Я то прошу (с матом). А вайбкодеры думают, что они идут бонусом к ллм.


        1. snuk182
          14.03.2026 06:27

          Известная фраза про психопата с бензопилой, который знает, где вы живете, как раз стопроцентно про знание архитектуры ПО.


          1. Kot_na_klaviature
            14.03.2026 06:27

            Вайбанутые уверены, что их по навечно будет поддерживать ии


  1. sergio_nsk
    14.03.2026 06:27

    Если есть закрытый SDK со своим закрытым API. Как обучить Claude этому API и портировать мой код на него так, чтобы этот SDK не утёк наружу?


    1. FSmile
      14.03.2026 06:27

      Никак. Отдать все данные Пентагону ради развития llm


      1. sergio_nsk
        14.03.2026 06:27

        А как же локальные модели с ollama? Вроде, с ними это решаемо.


        1. FSmile
          14.03.2026 06:27

          Вы же спрашивали про то как обучить Claude.
          Модели с открытыми весами вариант. тот же qwen, но все упирается в вычислительные ресурсы и выхлоп который вы хотите получить.
          А так вам нужно копать в сторону RAG, эммбендинга, MCP. Из этого можно получить справку по коду.
          Если хотите чтобы кодило ещё и сносно, то посмотрите опыт тех кто дообучал модели на язык Julia.


          1. akod67
            14.03.2026 06:27

            Клод не надо обучать. Ему надо дать MCP сервер с информацией об SDK. Это, согласитесь, не одно и то же. Вопросы безопастников это не отменяет конечно.


    1. sundmoon
      14.03.2026 06:27

      Можно заюзать GLM Coding Plan через Claude Code. Вроде даже модели Z.ai открытые, так что если заморочиться не отдать все данные китайцам...