Создаю музыкальный сервис с ChatGPT: Миссия выполнима?

Вступление

Привет! Недавно я решил всерьез вкатываться в IT и вдохновился видео, где создают соцсеть с помощью ChatGPT. Решил провести похожий эксперимент и превратить свой курсовой проект в MVP музыкального сервиса.

То самое видео

Я не полный новичок в программировании, но и экспертом себя не назову. Моя оценка себя - даже не 3 из 10.

Получилось ли написать сервис с помощью ChatGPT? Спойлер: Нет. Но я сделал важные выводы и готов ими поделиться.

Шаг 1. Запрос в ChatGPT.

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

И в итоге мой запрос выглядел так:

Самый первый запрос
Самый первый запрос

В ответ я получил инструкцию из нескольких пунктов, в котором ChatGPT по порядку рассказал что мне необходимо сделать.

Шаг 2. Прохожусь по пунктам.

Пункт 2. Исследование и планирование.

1.1 Функционал: Определи основные функции сервиса (например, стриминг музыки, создание плейлистов, рекомендации, социальные функции и т.д.).

Первым делом нужно было определиться с функционалом. Я хотел, чтобы мой сервис умел:

  • Регистрация/авторизация
  • Воспроизведение музыки
  • Добавление треков
  • Составление плейлистов
  • Поиск по сервису
  • Одинаковый уровень громкости

Дополнительные функции:

  • Визуальное сопровождение музыки
  • Показ текста песни
  • Социальные функции
  • Комментарии и оценки
  • Поддержка различных аудиоформатов
  • Настройка кастомной палитры сайта
  • Караоке
  • Рекомендации

Пункт 2. Исследование и планирование.

2.1 Техническое задание: Напиши подробное техническое задание, в котором опиши все функции и требования к проекту.

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

Первая часть запроса
Первая часть запроса
Вторая часть запроса
Вторая часть запроса

ChatGPT помог мне составить довольно неплохое ТЗ, которое я затем доработал и оформил.

2.2 Выбор технологий: Определи, какие технологии и библиотеки будешь использовать (например, Spring Boot для Java, Redux для управления состоянием в React и т.д.).

Я был вообще не знаком с технологиями и библиотеками, поэтому доверил выбор ChatGPT.

Запрос
Запрос

Ответ:

Ответ ChatGPT
Ответ ChatGPT

Я решил все это перенести в 1 место, создал проект в Miro и объединил все туда. Выглядело это так:

Доска в Miro на текущий момент
Доска в Miro на текущий момент

Пункт 3. Проектирование архитектуры.

3.1 Архитектура приложения: Определи архитектуру (например, микросервисная архитектура, монолит и т.д.).

3.2 База данных: Выбери подходящую СУБД (например, PostgreSQL, MongoDB) и спроектируй схему базы данных.

Я был знаком с монолитной архитектурой и работал с PostgreSQL, поэтому выбрал их.

Запрос
Запрос

Если бы я не знал как работать с SQL, на этом этапе эксперимент мог закончиться.

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

Схема БД в Miro
Схема БД в Miro

3.3 API: Спроектируй RESTful API или GraphQL для взаимодействия между фронтендом и бэкендом.

Для взаимодействия фронтенда и бэкенда я решил использовать RESTful API. И снова мне пришлось поправлять ChatGPT, чтобы получить корректные запросы.

Прошу конечную версию API-запросов
Прошу конечную версию API-запросов

Все API-запросы я также задокументировал на доске в Miro.

API-запросы
API-запросы

Пункт 4. Разработка бэкенда.

4.1 Настройка окружения: Установи необходимые инструменты (JDK, Maven/Gradle, IDE).

Смешно, но на этом этапе возникли трудности с версией JDK, благо они решились 1 запросом.

4.2 Создание проекта: Создай новый проект на Java с использованием Spring Boot.

Я попросил описать структуру проекта, так как вообще не знал никаких паттернов.

Ответ ChatGPT:

Структура проекта
Структура проекта

4.3 Реализация API: Реализуй основные эндпоинты для работы с пользователями, музыкой, плейлистами и т.д.

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

Один из запросов
Один из запросов

Таким способом я, используя ChatGPT написал всю логику эндпоинтов, без ошибок конечно не обошлось.

После того как я все написал, меня осенило, что нужно было все это тестировать :))

Решил запустить сервер. И, конечно же, не с первого раза все заработало. Ошибки, исправления, новые ошибки...

Как вдруг я увидел долгожданную надпись:

Ура, сервер запустился
Ура, сервер запустился

Но... Даже если сервер запустился, это не значит что он не упадет спустя секунду xD. Ну конечно же он упал.

На этом этапе я решил завершить свой эксперимент, так как нашел ответ на свой вопрос.

Шаг 3. Какой же итог?

Может ли ChatGPT заменить программиста?

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

Код проекта на GitHub: https://github.com/droptrigger/music-app

Мой Telegram-канал: t.me/CreateTrigger

22