Последнее время складывается ощущение, что люди вокруг просто посходили с ума. Про нейронки, ИИ, модели, тарифы говорят не просто все, а вообще все. В прямом смысле, в очень кривом и искаженном пересказе эту тему обсуждают уже бабки у подъезда. Даже от некоторых маргинальных лиц рядом с питейными заведениями вместе с привычным амбре витает в воздухе что-то вроде «Слышал там сеть какая-то, ты ей говоришь сделай ну это самое, а он тебе готовую хрень делает. Прикинь?». Даже не взирая на использование у них в речи мата в качестве знаков препинания и достигнутого лимита словарного запаса, о чем они общаются понятно.
TL;DR
Вайбкодинг – ок, если вы делаете небольшой проект для себя или небольшого бизнеса с низкой сложностью. Делайте на здоровье, но готовьтесь, что со временем поддерживать такой код будет дорого.
Все в ИИ, все об ИИ, все связано с ИИ или, что еще хуже сделано с помощью ИИ. В самом запущенном случае полностью сделано ИИ. И самое печальное во всем этом, качество нейронок повышается, а у людей порог критического мышления и вкусовых предпочтений низок. И если такое заявление 5 лет назад можно было посчитать признаком снобизма, то сейчас это просто констатация факта и статистика это подтверждает. Люди смотрят мультики, полностью сгенерированные нейронкой, читают / комментируют нейрослопные статьи, музыка с ИИ набирает миллионы прослушиваний и такого становится все больше и больше. Уже некоторые делают цифровые аватары, вымышленных людей с историями, о которых невозможно молчать. Ведут соцсети от их имени, собирают донаты, или даже рекламируют какие-то бренды. Некоторые идут еще дальше и строят контент фабрики, которые в режиме 24/7 пытаются создать вирусный ролик, исследуя тренды, рекомендации, придумывая сценарий. Практически полная автономность от реального человека – только токены закидывай в эту топку и все.
Конечно, можно долго причитать, как за каких-то 3-4 года все то, к чему мы привыкли оказалось вывернутым на изнанку. Тут и изменение правил площадок, маркировки ИИ, даже вот отказ от традиционных дипломов в ВУЗах, да много чего. Но есть одна тема, которая лично для меня стоит особняком и вызывает мгновенный разогрев сопла, что хоть в космос запускай. И речь, конечно же, про вайбкодинг. И даже скорее не само это явление, как таковое, а все что вокруг него происходит. Это и автоматизация всего ради автоматизации с коэффициентом реальной потребности на уровне нуля, это бесконечный контент «Смотри, что я сделал с клодом за один вечер», это адепты идеологии что программисты больше не нужны, а если и нужны, то это просто потому, что еще не все перешли на нейронки. Ну и конечно, там где хайп, там появляются они, короли хайпа – инфоцыгане всех мастей, которые вчера продавали занятия по тарологии, нумерологии и родологии, позавчера обучали личностномк росту и раскрытию себя, сегодня готовы научить вас пользоваться промтами и скиллами, а также раскроют на своих платных курсах секреты профессионального вайбкодинга.
Давайте на берегу поясню, я не лудит и вот против как такового вайбкодинга именно ничего не имею. Я считаю, это отличный способ быстро и дешево здесь и сейчас проверить гипотезу, получить простой сервис, решить какую-то конкретную бизнес проблему и т.д. Искренне рад, когда малый бизнес может на коленке создать рабочую вещь, которая повышает эффективность, прозрачность, качество чего-то и т.д., при этом не имея айтишних компетенций и бюджетов на них. Но сугубо на мой взгляд, у такого подхода есть предел и далеко не первый замечательный, поэтому просто в какой-то момент оказывается, что систему своими силами не получается поддерживать и развивать, и этот лимит не всегда очевиден даже людям с технической экспертизой, а что говорить про людей далеких от айтишки, которые вообще даже не думают об этом и не понимает что это такое.
Поэтому, я захотел поразмыслить на эту тему, что возможно стоит в какой-то момент все же остановиться и если вы что-то навайбкодили и это реально по вашим метрикам / ощущениям полезная вещь, то пойти по стандартным рельсам – привлечь экспертов. И заодно доходчиво объяснить людям, далеким от ИТ, почему не стоит верить на слово успешным случаям вайбкодинга и бросаться с головой в это болото. К людям, которые покупают курсы в закрытых сообществах инфоцыг вопросов нет, вряд ли получится достучаться до той части вашего мозга, где должно располагаться критическое мышление. Итак, ближе к сути.
За десятки лет существования разработки как отдельной отрасли эволюционно мы прошли эволюционно через огромное количество проблем, которые обсуждали, придумывали решения, спорили, ошибались, подбирали подходящий ключик и двигались дальше к следующим трудностям. Менялись языки, менялись технологии, потребности, возрастала сложность систем, копился техдолг, менялась архитектура. Через набитые шишки появлялись эксперты и упаковывали все это в виде книг, которые становились чуть ли не библией разработки. Это труды Роберта Мартина, паттерны проектирования банды четырех, Шаблоны корпоративных приложений Фаулера и много чего еще. За всеми этими книгами стояла конкретная боль: как продлить жизнь приложения, как с ростом сложности сохранить систему поддерживаемой и гибкой к изменяющимся бизнес правилам и требованиям. Все это уже тысячу раз обсудили, каждый кто сталкивался на работе с монолитами не по наслышке понимает, насколько это боль поддерживать их, что релизы по несколько часов – норма, что часто никто в команде не знает тот или иной участок кода, что из 10 часов на исправление какого-то мелкого бага часов 8 уйдет на разбор логики в хэндлере на две-три тысячи строк код. Визуально последствия простоты на старте Фаулер изобразил почти 20 лет назад
Визуально
Расшифровка от Gemini:
• Коричневая линия (No Design): Быстрый старт, но затем система «упирается в стену». Добавлять новые фичи становится физически невозможно (это как раз тот момент, когда кривая сложности улетает в космос).
• Синяя линия (Good Design): Старт немного медленнее (нужно продумать контракты, интерфейсы, CI/CD), но в долгосрочной перспективе скорость развития системы не падает.
• Линия окупаемости (Design-Payoff Line): Та самая точка пересечения. В реальных корпоративных системах она обычно наступает всего через несколько недель или месяцев после начала активной разработки.
Вот это все предельно понятно разработчикам, архитекторам, аналитикам, некоторым менджерам. Да, мы можем подискутировать о каких-то моментах, иметь свою точку зрения относительно критичности того или иного подхода, но глобально эта парадигма обязывает разрабатывать по определенным принятым паттернам и стандартам, закладывать время на архитектуру, скурпулезно составлять контракты, все обвешивать интерфейсами и т.д.
Но это все абсолютно не то, чтобы не очевидно подавляющему большинству вайбкодеров, они об этом даже и не задумываются, думая что обманули систему и сейчас вот сэкономили на разработке, так и дальше нейронка будет это поддерживать, но поверьте, это иллюзия. Используя вайбкодинг без технической экспертизы Вы закладываете мину замедленного действия в свой продукт и с каждым новым промтом эта мина становится все мощнее. Вы думаете, что мы [разработчики] просто паникуем за контракты, за свою ценность и пытаемся защитить свои теплые места, так как боимся, что нейронки заменят нас или пошатнут нашу востребованность. Поверьте, ровным счетом наоборот. Мы уже сталкивались с системами, которые крутят в продакшене, потребляют много ресурсов и очень чувствительны к правкам кодовой базы. И разгребать эти авгиевы конюшни не самое приятное занятие, а главное – не самое дешевое для бизнеса. Индусский аутосорс – это не разу не шутка, это суровая реальность и боль тех, кто приходит на такие проекты. Но у таких проектов хотя бы были реальные люди, кто это писал, хоть и по принципу тяп-ляп, но все же что-то они умели и писали. А по скольку экспертизы было не шибко много, конструкции заложенные в фундамент хоть и отвратительные, но простые и понятные. А вот вайбкодинг очень-преочень хочет казаться мега архитектором и синьором, которому и социальную сеть написать под силу, поэтому спустя n недель вайбкодинга, ваш проект станет утыкан такими конструкциями, от которых у разработчиков глаза не то, что на лоб полезут, я боюсь они просто вылезут. И когда вы будете нанимать разработчиков на доработку вашего продукта поверьте, ценник вас неприятно удивит.
Но вы также думаете, что все это глупости – зачем вам настоящий разработчик, если у вас есть клод? Он и так все пишет, он правит сам, сам делает тесты, сам составляет документацию на каждый чих и вообще просто солнышко в двоичном коде. Вы твердо уверены, что сможете сами полностью поддерживать свою систему, ведь с каждой новой моделью нейронка становится все лучше и лучше, а значит лишь вопрос времени, когда вы сможете скармливать проекты на миллионы строк кода и одним промтом в стиле «исправь баг, что мне пользователи голову имеют» закрыть проблему. Не хочу огорчать, но вы снова ошибаетесь. Понимаете, реальные коммерческие системы имеют такую сложность, что она не умещается ни в головы целой команды разработчиков, не помещается в сотни статей кофлюенса. И только-только если есть хороший аналитик, которые ведет доку и несколько лет работает над проектом в паре с продуктовым менеджером, также в этом проекте есть несколько разработчиков, отработавших по паре лет, то вот в рамках этой зоны ответственности есть глубокое понимание продукта – как работают вызовы, как формируются записи, как вызываются внешние сервисы, как отрабатывают фоновые процессы в том или ином случае. Дьявол кроется в деталях, знаете такую поговорку? Она вот про техническую сложность, когда ты читаешь подробную статью, общаешься с аналитиком, потом с коллегой разработчиком, а потом еще сидишь 2-4 часа вникаешь в код. И это норма, надеюсь коллеги подтвердят. А тут вы думаете, что можно одним (ну или двумя-тремя) промтом добиться нужного результата в большой и сложной системе.
А самое главное, как вы собираетесь убедиться, что выполнение решение действительно корректно, не поломало то, что уже работало корректно и закрыло вашу проблему? Вы сами тесты напишете интеграционные, вы будете вникать в детали логики? Да нет конечно, вы доверитесь нейронке, а результат узнаете по факту релиза, а когда с очередным релизом вы начнете ломать что-то другое и получать сначала просто негатив от пользователей, а потом отток трафика / клиентов, вы только тогда поймете о чем сейчас речь.
Но у Вас есть главный довод, который перекрывает все мои вопросы – это дешево. Раньше если вам нужна была CRM вы либо ставили коробочную версию и платили за лицензию, или шли на рынок, вам считали систему на пару миллионов рублей и вы уходили обратно в Excel строить отчеты, то теперь есть клауд код и аналоги. Они за символическую подписку в 10-20 долларов делает все, что угодно – и дашборды, и выгрузки, и ботов, и скрипты и т.д. И вот вы за 100 долларов буквально написали свою CRM, это ли не чудо? И вы думаете, что еще 100 долларов и вы сделаете интеграцию с 1C и ЭДО, еще 100 – и вот уже интеграция с ВБ и озоном и т.д. Но посмотрите на ситуацию на рынке, что происходит вокруг ИИ, сколько ресурсов вложено в нее. Откуда у Вас гарантия, что цена такой и останется, и будет неизменной? Как вы думаете компании будет отбивать вложенные миллиарды в инфраструктуру, если можно за $10 сделать полноценную CRM? Да даже сейчас как-то Unit экономика не сходится, и все чаще появляются статьи, что оказывается вайбкодить дорого. Дорого тем, кто не просто делает пет проект, а кто использует его в коммерческих проектах – ведь это дешевле, чем содержать штат синьоров, по крайней мере так думали. И оказывается, что уже и не так уж и выгодно. Лимиты на токены, пересаживание на свои локальные LLM и т.д. – это уже сейчас, а бизнес уж умеет считать бабки, поверьте. И при всем этом, напомню, что ИИ требует возврата инвестиций в миллиарды, а какая самая беспроиграшная стратегия, знаете? Это подсадить на свой продукт миллионы пользователей, выдавливать квалифицированные кадры с рынка за счет демпинга трудозатрат на разработку, дождаться выхода таких навайбкоженных продуктов на рынок и после набора критической массы поднять цену на модели / токены. Куда вы денетесь-то с подводной лодки? Естественно, это все мои выдумки и полет фантазии, ведь никогда такого не было.
Неужели нужно говорить строго нет вайбкодингу? На самом деле нет, я так не сичтаю. Как говорил выше, велкам к вайбкодингу, если вам нужно решить простую прикладную задачу для себя или небольшого бизнеса. Сделать дашборд, бота, какой-то сайтик, интеграцию с онлайн таблицами и т.д. Но, пожалуйста, держите руки на столе при мысли «Написать свою CRM, свою CMS, свой SaaS сервис» с реальными пользователями и их данными, платежами и биллингом.
В следующей статье приведу реальный пример как получилось навайбкодить простой сервис и что уже, это дикий Франкенштейн, который только издалека кажется вполне себе аккуратным. А если продолжать его пичкать требованиями и бизнес логикой, то будет только хуже. Но да, оно работает, а что еще нужно вайбкодеру? Самые нетерпеливые могут изучить самостоятельно, поохать и поахать.
Спасибо, что дочитали мою статью! У меня есть небольшой телеграм канал, буду рад подписке и неформальному общению.
ссылка на оригинал статьи https://habr.com/ru/articles/1055060/