Почему вайб-кодинг — это плохо (но не всегда)
Вы уже в курсе, что такое вайб-кодинг? Если нет, объясню: это способ разработки, когда код за вас пишет языковая модель (ИИ), а вы не только не вникаете в детали, но и даже не смотрите, что там получилось. Термин «вайб-кодинг» родился после поста сооснователя OpenAI Андрея Карпатого в соцсети X.
Важно не путать вайб-кодинг и осознанную разработку с использованием LLM (Large Language Models). Если вы продумываете архитектуру, пусть даже с помощью LLM, смотрите и ревьюите код, это как раз продвинутый и эффективный подход, который, уверен, вскоре станет стандартом.
Справедливости ради скажу, что вайб-кодинг не всегда однозначно плох. Например, если задача временная — прототип, MVP или одноразовый инструмент, который не жалко выкинуть, — почему бы и нет.
Но для 1С-разработки это, по-моему, ужасная практика. И вот почему:
1. Ракетный рост техдолга. LLM решает конкретную задачу здесь и сейчас, не думая о дальнейшей эволюции системы. Если ее специально не направлять, она выдает код без четкой архитектуры и слоев абстракции, склонна лепить костыли и заплатки. Через пару месяцев активной разработки сколько-нибудь сложной системы практически нереально заставить такую базу кода проходить регрессы. Проще переписать с нуля.
2. Невидимые дыры в безопасности. Если LLM наткнется на ошибку «Недостаточно прав», как она будет ее решать — вставит в запрос «РАЗРЕШЕННЫЕ» или перед запросом установит привилегированный режим, отключив контроль прав? Не знаете? Вот и я не знаю, все зависит от того, как токены лягут. Второй вариант может дать пользователю доступ к тому, что он не должен видеть.
3. Вайб-кодинг не жизнеспособен без автоматических тестов. Но кто их напишет, та же LLM? Если мы не доверяем коду, сгенерированному языковой моделью, как можем доверять тестам? Может случиться и так, что тест повторяет логику сгенерированного кода, а не бизнес-требование, поэтому якобы все отлично. В общем, человеку включиться в анализ кода — хотя бы тестов — все равно придется.
4. Растущие проблемы с производительностью. Вряд ли LLM «на вайбе» будет думать про оптимизацию, индексы или кэширование. И пока ее не научат профилировать код и запросы (а это непросто), эти моменты снова ложатся на плечи разработчика.
Мой совет: начинать проект можно и с вайб-кодинга, но потом обязательно провести полное ревью и, при необходимости, рефакторинг. Я делаю именно так. Даже если работаю с незнакомым языком или стеком, мучаю LLM вопросами: «Что здесь происходит? Почему именно так?». В процессе такого взаимодействия модель иногда сама обнаруживает и исправляет ошибки.
Что думаете про вайб-кодинг?
👍 — Нормальная тема, использую
🔥 — Иногда можно, но осторожно
🤔 — Разрабатывать код должен только человек