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

Вступление

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Регистрация/авторизация

  • Воспроизведение музыки

  • Добавление треков

  • Составление плейлистов

  • Поиск по сервису

  • Одинаковый уровень громкости

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

  • Визуальное сопровождение музыки

  • Показ текста песни

  • Социальные функции

  • Комментарии и оценки

  • Поддержка различных аудиоформатов

  • Настройка кастомной палитры сайта

  • Караоке

  • Рекомендации

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

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

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

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

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

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

Вторая часть запроса

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

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

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

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

Запрос

Ответ:

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

Ответ ChatGPT

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

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

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

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

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

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

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

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

Запрос

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

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

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

Схема БД в Miro

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

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

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

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

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

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

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

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

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

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

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

Ответ ChatGPT:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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