VibeCode. Мой опыт разработки ПО на C#. Часть 1
1. Введение
Привет, чумбы!
Вы когда-нибудь думали, что настанет время, когда любой человек, не зная основ программирования, сможет написать простую программу для своих нужд? В этой статье я докажу и покажу, что это время уже пришло!
VibeCoding стал для меня настоящим открытием. Я учусь заочно на программиста в университете, но из-за моей особенности, я не горю желанием изучать базовые языки, такие как C++, C#, Python, Java и другие. Для меня важен язык VEX — это язык программирования для Houdini. Поэтому я и решил использовать инструменты VibeCoding-а, чтобы писать код с кайфом. Хотя эта область пока не очень популярна, навыки VibeCoding помогли мне 'не страдать' в университете и получить некоторые нужные программы, чтобы покрывать зачёты.
Цель статьи: раскрыть суть VibeCoding своими глазами. То есть, на основе небогатого опыта поделится с вами своим мнением.
2. Общие понятия VibeCode
Дам своё определение: VibeCoding — это искусство создания программ без знания языков программирования.
Возникает вопрос: как можно создавать скрипты/программы без знания языка? Ответ прост: используются специальные инструменты, 'ваши помощники'(один из примеров - нейросети). Ваша задача — предоставить подробную информацию о ваших заданиях. Задача помощника — преобразовать ваш текст в код.
Что вам нужно знать?
- Опыт работы с программой: как создавать проект, как собирать проект, искать текст по ключевым словам, находить и исправлять ошибки. Вам нужны программы Microsoft Visual Studio или Pycharm (только Python)
- Выбор языка программирования: для разных задач подходят разные языки. Например, для простых задач лучше выбрать Python из-за его простоты. Однако для более сложных приложений, таких как диспетчер задач или секундомер, я порекомендую C#. Если вам нужен сайт, то здесь подойдут HTML, CSS и JavaScript.
Для своих целей я выбрал C# для программы по отслеживанию времени. В качестве инструмента я использую нейросети. Я пробовал несколько популярных вариантов, таких как ChatGPT, DeepSeek, Grok и Claude. Если оценивать их по качеству работы, то:
3. Процесс работы: мой опыт
3.1. Досье моей программы
Разберём из какого теста состоит моя программа. У меня нет цели раскручивать свою программу, просто хочу показать, как нейросеть создаёт программы на основе того, чего я вам расскажу ниже
- Название: Менеджер Расписании
- Инструмент: DeepSeek
- Язык программирования: C#
- Платформа: Microsoft Visual Studio
- Цель: Создание удобного инструмента для управления временными интервалами с напоминаниями, звуковыми уведомлениями и визуальным отображением расписания.
- Функции:
- Создание интервалов с начальным/конечным временем и описанием. Цветовое кодирование интервалов. Редактирование и удаление интервалов. Управление временными интервалами включает в себя создание интервалов с указанием начального и конечного времени, а также их описанием. Эти интервалы можно цветовым кодировать для лучшей наглядности. Также предусмотрена возможность редактирования и удаления созданных интервалов.
- Звуковые оповещения о начале/конце интервалов, настройка отдельных звуков для старта и финиша, визуальные уведомления (всплывающие окна).
- Текущее время и дата. Обратный отсчет до следующего интервала. Подсветка активного интервала.
- Напоминания с возможностью загрузки собственных звуков, тёмная тема интерфейса, работа в трее (сворачивание в значок), сохранение данных между сеансами.
3.2. Создание проекта
Объясню весь цикл создания программы на нейросети DeepSeek.
Прежде всего, важно придумать название программы, понять цель и её функционал. Умение составлять запросы (промпты) также важно, как знание программы и понимание терминов. Ниже я привожу свой промпт, который использовал:
Ты крутой и самый умный программист из всех, которых только есть в этом мире. Я пишу тебе с просьбой, доработать мою программу до идеала. За твою хорошую работу, я готов заплатить много денег, поэтому не облажайся!
Немного о себе: Пишу программу я сам. Я не программист, точнее не умею писать на C#. От тебя я жду: готовое решение. Ты должен написать код от начала и до конца для каждого файла .cs. Сокращать код ты не можешь - только полностью писать
Задача:
.................
Ваша первая цель: создать макет программы — простую, готовую версию программы с минимальным количеством функции (как правило до 3). Не забудьте упомянуть нейросеть, что вам нужно разделить программу с несколькими файлами или создать модульную структуру (.cs или .xaml - для VS и .py для PyCharm). Это важно, так вы будете экономить время и нервы. После этого - можно отправлять запрос
Я предполагаю, что ошибок быть не должно. Но если они всё же будут. Копируйте ошибки и отправляйте их нейросети.
Если для вас важен дизайн программы, то начинайте продумывать прямо сейчас. Не буду приводить примеры, потому что результат зависит от вашего запроса(от самого крутого, до понятного или формального). Лучше попросите нейросеть написать весь код, не сокращая строки кода, потому что DeepSeek любит сократить код.
Затем, если вам захочется добавить больше функций, скопируйте весь код, который у вас есть из VS или Pycharm, в текстовый редактор и создайте новый диалог с нейросетью. Прикрепите текстовый редактор в новый диалог и попросите нейросеть, чтобы он подкинул вам идеи.
... Перед тобой программа: "Название". Прикрепляю текстовый редактор: название.txt. Мне необходимо, чтобы ты придумал топ 10 самых интересных и лучших идеи для неё.
Когда у вас есть список идеи, то можно их реализовывать. Здесь важно писать очень подробно. Объясняйте так, будто вы говорите с человеком, который ничего не понимает. Каждую новую идею лучше разделять на новый файл (.cs или .py). Так намного проще реализовывать многофункциональную программу.
Кроме того, не забывайте делать резервные копии. Когда вы создадите макет программы, добавите дизайн и убедитесь, что всё работает, сохраните его в простом текстовом документе .txt. Повторяйте это каждый раз, когда успешно добавите новую фичу, без ошибок и багов. Это позволит вам иметь точку отсчета в случае неудачи.
Ошибки неизбежны. Если они появились, просто скопируйте их и вставьте в диалог с нейросетью.
1. Что за программа?
- Название - придумайте название, чтобы она описывала программу в нескольких словах
- Цель - что она должна делать для вас
- Модульная структура - попросите нейросети разделить код на несколько файлов
- Язык программирования(С# или Python) и платформа(Visual Studio или Pycharm)
- Опишите до 3 функции программы2. Дизайн - дайте команду нейросети создать для вас дизайн. Крутой или красивый или формальный или понятный...
3. Функции - доделайте программу, добавив функции, которые вы хотели. Новая функция = новый файл .cs / .py
ТРУДНОСТИ:
1. У нейросети DeepSeek ограниченный лимит токенов на 1 диалог. Это значит - чем большой слов вам дала нейросеть, тем быстрее ваш диалог закончиться. Если вы попросите нейросеть переписать программу из 5к строк, то через 10 минут общения, лимит токенов закончится и вам придётся заново создавать диалог
2. Бесящая ошибка: Server is busy, please try again later. Я называю этот момент "Нейросеть устала". Я могу только порекомендовать - дать нейросети немного отдохнуть от вас, на 20 минут, может больше. Иногда после этого ошибка исчезала.
3. "Чем сложнее описать функцию, тем труднее её реализовать.". Это такое, золотое правило на данный момент. Старайтесь писать много подробностей для каждой фичи и перефразировать свой текст с помощью нейросетей, чтобы DeepSeek лучше вас понимала. К примеру от Яндекса есть нейросети, которые переписывает ваш текст, делая её красивее, более формально и т.д.
4. Будущее VibeCode: мои мысли
VibeCode активно развивается, и при должном усердии и грамотном подходе можно создать что-то своё без помощи программиста. Однако я считаю, что профессия программиста пока не уступает нейросетям.
- Во-первых, работать с нейросетями над крупными проектами слишком сложна. Если речь идёт о простом приложении, то можно справиться самостоятельно. Но для масштабной проектов навыки программиста необходимы.
- Во-вторых, даже если нейросети смогут заменить программистов, кто будет придумывать промпты, писать качественный текст, проверять программы и исправлять ошибки? Естественно, количество "некоторых" программистов сократиться, т.к. писать базу будут не джуны, а нейросети
- В-третьих, это её трудности, которые описал выше
Предполагаю, что у нас есть 2 хода событии
- Через 5–15 лет профессия программиста потеряет свою ценность. Джунам будет сложнее пробиться в IT, а сеньоры и мидлы могут либо получать меньше $, чем раньше, либо облегчить свою работу, что сейчас и происходит. Тогда VibeCode будет достаточно популярен и заменит большинство программистов, в основном джунов
- Нейросети не будут так хорошо развиваться и останутся на таком же течении, что и сейчас. Это, пожалуй, лучший исход для программистов и при этом самый наивный. Я бы не стал этому верить, потому что сюда впихивают много $ и вряд ли это остановится.
5. Результаты
Разработка программы у меня ушёл месяц. Я работал над ней в выходные по 7 часов, а иногда и в будни, по 2-3 часа.
Ещё 2 недели я потратил на изучение Microsoft Visual Studio и .NET Framework. Я также пытался понять, как составить идеальный промпт, чтобы нейросеть сгенерировала качественный код.
К сожалению, мне не удалось реализовать всё, что я планировал. Например, я хотел бы добавить подробное описание временных интервалов.
Временной интервал: 9:00 - 10:00
Описание: Учить английский
Подробное описание: необходимо посетить сайт Duolingo, пройти несколько тестов. Также нужно перейти по https://www.... и изучить слова... Если останется время - послушать рассказ на английском в ютубчике
Несмотря на это, я остался доволен своим опытом работы. Даже с минимальным знанием программирования и базовыми навыками работы с программой, я смог создать свой бесплатный софт без необходимости платить за него. В будущем, буду учиться на ошибках, и может создам уже достаточно мощный и крутой софт. Поработаю над дизайном и терминологией, чтобы нейросеть лучше меня понимала
В этой статье я рассказал о том - как легко можно создать простую программу для своих нужд и какие инструменты и навыки необходимы, чтобы добиться своих целей
Я буду рад почитать ваш опыт в VibeCoding-а. Надеюсь, в этой статье, я помог вам раскрыть некоторые секреты в создании программы, где опыт программирования не столько важен, как умение объяснить нейросети чего ты хочешь